|
| 2 felter med samme navn i et JOIN Fra : EnjoyNews |
Dato : 24-03-07 02:03 |
|
Hvis man JOIN'er 2 tables skriver man jo bare ex. $email=$row['Email']; for
at få fat i email adressen.
Man hvad nu hvis begge tables har et felt der hedder Email.
Går det så galt, eller kan man skelne dem på en eller anden måde ?
| |
Peter Brodersen (24-03-2007)
| Kommentar Fra : Peter Brodersen |
Dato : 24-03-07 02:56 |
|
On Sat, 24 Mar 2007 02:02:43 +0100, "EnjoyNews" <mh-nyheder@mail.dk>
wrote:
>Hvis man JOIN'er 2 tables skriver man jo bare ex. $email=$row['Email']; for
>at få fat i email adressen.
>Man hvad nu hvis begge tables har et felt der hedder Email.
>Går det så galt, eller kan man skelne dem på en eller anden måde ?
Du kan bruge et alias, når du henter felter ud, fx:
SELECT a.Email, b.Email AS Secondaryemail FROM ..
... og så referere til den anden kolonne i resultatet som
Secondaryemail.
--
- Peter Brodersen
Kendt fra Internet
| |
Leif Neland (24-03-2007)
| Kommentar Fra : Leif Neland |
Dato : 24-03-07 02:56 |
|
EnjoyNews wrote:
> Hvis man JOIN'er 2 tables skriver man jo bare ex.
> $email=$row['Email']; for at få fat i email adressen.
> Man hvad nu hvis begge tables har et felt der hedder Email.
> Går det så galt, eller kan man skelne dem på en eller anden måde ?
Giv felterne et alias i select'en
select company.email as firma_email,
person.email as email
from person
left join company
on company.id=person.company_id
where person.id=?
Så refererer du til $row['Email'] og $row['Firma_email']
Man kan også referere til felterne med nummeret (kan ikke lige huske
php-syntaxen), men det er en uskik, da din applikation kan bryde sammen,
hvis der bliver tilføjet et felt midt i tabellen.
Leif
| |
EnjoyNews (24-03-2007)
| Kommentar Fra : EnjoyNews |
Dato : 24-03-07 17:43 |
|
"Leif Neland" <leif@neland.dk> skrev i en meddelelse
news:46048545$0$90276$14726298@news.sunsite.dk...
> EnjoyNews wrote:
>> Hvis man JOIN'er 2 tables skriver man jo bare ex.
>> $email=$row['Email']; for at få fat i email adressen.
>> Man hvad nu hvis begge tables har et felt der hedder Email.
>> Går det så galt, eller kan man skelne dem på en eller anden måde ?
>
> Giv felterne et alias i select'en
>
> select company.email as firma_email,
> person.email as email
> from person
> left join company
> on company.id=person.company_id
> where person.id=?
>
> Så refererer du til $row['Email'] og $row['Firma_email']
>
> Man kan også referere til felterne med nummeret (kan ikke lige huske
> php-syntaxen), men det er en uskik, da din applikation kan bryde sammen,
> hvis der bliver tilføjet et felt midt i tabellen.
>
> Leif
Super... mange tak skal i have..
| |
Per Rønne (24-03-2007)
| Kommentar Fra : Per Rønne |
Dato : 24-03-07 19:45 |
|
EnjoyNews <mh-nyheder@mail.dk> wrote:
> Hvis man JOIN'er 2 tables skriver man jo bare ex. $email=$row['Email']; for
> at få fat i email adressen.
> Man hvad nu hvis begge tables har et felt der hedder Email.
> Går det så galt, eller kan man skelne dem på en eller anden måde ?
Select t1.email mail1,
t2.email mail2
from t1, t2
where t1.id(+) = t2.id(+);
--
Per Erik Rønne
http://www.RQNNE.dk
| |
EnjoyNews (24-03-2007)
| Kommentar Fra : EnjoyNews |
Dato : 24-03-07 20:06 |
|
""Per Rønne"" <per@RQNNE.invalid> skrev i en meddelelse
news:1hvhvue.1cwrmgrwhdha9N%per@RQNNE.invalid...
> EnjoyNews <mh-nyheder@mail.dk> wrote:
>
>> Hvis man JOIN'er 2 tables skriver man jo bare ex. $email=$row['Email'];
>> for
>> at få fat i email adressen.
>> Man hvad nu hvis begge tables har et felt der hedder Email.
>> Går det så galt, eller kan man skelne dem på en eller anden måde ?
>
> Select t1.email mail1,
> t2.email mail2
> from t1, t2
> where t1.id(+) = t2.id(+);
> --
> Per Erik Rønne
> http://www.RQNNE.dk
from t1, t2 where t1.id(+) = t2.id(+); ???
Den var ny... er det det samme som JOIN .... ON (...=...) ??
| |
Per Rønne (25-03-2007)
| Kommentar Fra : Per Rønne |
Dato : 25-03-07 06:14 |
|
EnjoyNews <mh-nyheder@mail.dk> wrote:
> ""Per Rønne"" <per@RQNNE.invalid> skrev i en meddelelse
> news:1hvhvue.1cwrmgrwhdha9N%per@RQNNE.invalid...
> > EnjoyNews <mh-nyheder@mail.dk> wrote:
> >
> >> Hvis man JOIN'er 2 tables skriver man jo bare ex. $email=$row['Email'];
> >> for at få fat i email adressen.
> >> Man hvad nu hvis begge tables har et felt der hedder Email.
> >> Går det så galt, eller kan man skelne dem på en eller anden måde ?
> >
> > Select t1.email mail1,
> > t2.email mail2
> > from t1, t2
> > where t1.id(+) = t2.id(+);
> from t1, t2 where t1.id(+) = t2.id(+); ???
>
> Den var ny... er det det samme som JOIN .... ON (...=...) ??
< http://www.adp-gmbh.ch/ora/sql/outer_join.html>
Prøv i øvrigt når du spørger om noget sådant lige at nævne hvilken
database du bruger - Oracle, Ingres, Informix, ...
--
Per Erik Rønne
http://www.RQNNE.dk
| |
EnjoyNews (25-03-2007)
| Kommentar Fra : EnjoyNews |
Dato : 25-03-07 15:05 |
|
""Per Rønne"" <per@RQNNE.invalid> skrev i en meddelelse
news:1hvirtz.1vlfmkgag60g8N%per@RQNNE.invalid...
> EnjoyNews <mh-nyheder@mail.dk> wrote:
>
>> ""Per Rønne"" <per@RQNNE.invalid> skrev i en meddelelse
>> news:1hvhvue.1cwrmgrwhdha9N%per@RQNNE.invalid...
>> > EnjoyNews <mh-nyheder@mail.dk> wrote:
>> >
>> >> Hvis man JOIN'er 2 tables skriver man jo bare ex.
>> >> $email=$row['Email'];
>> >> for at få fat i email adressen.
>> >> Man hvad nu hvis begge tables har et felt der hedder Email.
>> >> Går det så galt, eller kan man skelne dem på en eller anden måde ?
>> >
>> > Select t1.email mail1,
>> > t2.email mail2
>> > from t1, t2
>> > where t1.id(+) = t2.id(+);
>
>> from t1, t2 where t1.id(+) = t2.id(+); ???
>>
>> Den var ny... er det det samme som JOIN .... ON (...=...) ??
>
> < http://www.adp-gmbh.ch/ora/sql/outer_join.html>
>
> Prøv i øvrigt når du spørger om noget sådant lige at nævne hvilken
> database du bruger - Oracle, Ingres, Informix, ...
Den kendte jeg ikke..
Jeg bruger MySQL..
| |
Per Rønne (25-03-2007)
| Kommentar Fra : Per Rønne |
Dato : 25-03-07 15:28 |
|
EnjoyNews <mh-nyheder@mail.dk> wrote:
> ""Per Rønne"" <per@RQNNE.invalid> skrev i en meddelelse
> news:1hvirtz.1vlfmkgag60g8N%per@RQNNE.invalid...
> > EnjoyNews <mh-nyheder@mail.dk> wrote:
> >
> >> ""Per Rønne"" <per@RQNNE.invalid> skrev i en meddelelse
> >> news:1hvhvue.1cwrmgrwhdha9N%per@RQNNE.invalid...
> >> > EnjoyNews <mh-nyheder@mail.dk> wrote:
> >> >
> >> >> Hvis man JOIN'er 2 tables skriver man jo bare ex.
> >> >> $email=$row['Email'];
> >> >> for at få fat i email adressen.
> >> >> Man hvad nu hvis begge tables har et felt der hedder Email.
> >> >> Går det så galt, eller kan man skelne dem på en eller anden måde ?
> >> >
> >> > Select t1.email mail1,
> >> > t2.email mail2
> >> > from t1, t2
> >> > where t1.id(+) = t2.id(+);
> >
> >> from t1, t2 where t1.id(+) = t2.id(+); ???
> >>
> >> Den var ny... er det det samme som JOIN .... ON (...=...) ??
> >
> > < http://www.adp-gmbh.ch/ora/sql/outer_join.html>
> >
> > Prøv i øvrigt når du spørger om noget sådant lige at nævne hvilken
> > database du bruger - Oracle, Ingres, Informix, ...
>
> Den kendte jeg ikke..
> Jeg bruger MySQL..
Der findes andre databaser end MySQL. Masser. Også PostgreSQL, som i
lighed med MySQL er gratis.
Personligt arbejder jeg med Oracle.
--
Per Erik Rønne
http://www.RQNNE.dk
| |
Kristian Damm Jensen (28-03-2007)
| Kommentar Fra : Kristian Damm Jensen |
Dato : 28-03-07 15:48 |
|
"Per Rønne" wrote:
> EnjoyNews <mh-nyheder@mail.dk> wrote:
>
>> ""Per Rønne"" <per@RQNNE.invalid> skrev i en meddelelse
>> news:1hvhvue.1cwrmgrwhdha9N%per@RQNNE.invalid...
>>> EnjoyNews <mh-nyheder@mail.dk> wrote:
>>>
>>>> Hvis man JOIN'er 2 tables skriver man jo bare ex.
>>>> $email=$row['Email']; for at få fat i email adressen.
>>>> Man hvad nu hvis begge tables har et felt der hedder Email.
>>>> Går det så galt, eller kan man skelne dem på en eller anden måde ?
>>>
>>> Select t1.email mail1,
>>> t2.email mail2
>>> from t1, t2
>>> where t1.id(+) = t2.id(+);
>
>> from t1, t2 where t1.id(+) = t2.id(+); ???
>>
>> Den var ny... er det det samme som JOIN .... ON (...=...) ??
>
> < http://www.adp-gmbh.ch/ora/sql/outer_join.html>
>
> Prøv i øvrigt når du spørger om noget sådant lige at nævne hvilken
> database du bruger - Oracle, Ingres, Informix, ...
Når der nu netop ikke er angivet hvilken database, hvorfor benytter du så
ikke standardsyntaksen:
.....from t1 full outer join t2 on t1.id = t2.id
?
Det er efterhånden et fåtal af databaser, der ikke understøtter denne
syntaks.
--
Venlig hilsen /Best regards
Kristian Damm Jensen
| |
Per Rønne (28-03-2007)
| Kommentar Fra : Per Rønne |
Dato : 28-03-07 21:10 |
|
Kristian Damm Jensen <kristiandamm@yahoo.dk> wrote:
> Når der nu netop ikke er angivet hvilken database, hvorfor benytter du så
> ikke standardsyntaksen:
>
> ....from t1 full outer join t2 on t1.id = t2.id
Fordi jeg sidder med en Oracle-database til dagligt, og fordi det er
lang tid siden jeg havde Dates 'An Introduction to Databas Systems'.
Bindet siger 'Second Edition', og er tilsyneladende trykt i 1977 - for
30 år siden. I denne bog kaldes SQL for Sequel.
--
Per Erik Rønne
http://www.RQNNE.dk
| |
|
|