|
| Simpel join mellem to tabeller med identis~ Fra : Torben Heikel Vinthe~ |
Dato : 01-10-03 23:40 |
|
Hej
Jeg har et lille problem med mysql i php, som I måske kan hjælpe med. Det
drejer sig om at jeg vil lave en simpel join mellem to tabeller, som begge
indeholder et felt der hedder "id". Jeg vil bl.a. gerne have at den spytter
id-nummeret ud for den ene tabel. Jeg har prøvet at gøre følgende men det
giver ikke noget:
$query = mysql_query("SELECT * FROM tabelA,tabelB WHERE
tabelA.id=tabelB.tabelA_id",$mysql_link);
while($data=mysql_fetch_array($query))
{
echo "Id-nummer for tabel 1: $data[tabel1.id]";
}
Hvis jeg i stedet for at skrive "$data[tabel1.id]" skriver "$data[id]" giver
den mig til gengæld id-nummeret for tabelB!?
Hvad gør jeg galt?
Venlig hilsen
Torben Heikel Vinther
| |
Johan Holst Nielsen (02-10-2003)
| Kommentar Fra : Johan Holst Nielsen |
Dato : 02-10-03 00:47 |
|
Torben Heikel Vinther wrote:
> Hej
>
> Jeg har et lille problem med mysql i php, som I måske kan hjælpe med. Det
> drejer sig om at jeg vil lave en simpel join mellem to tabeller, som begge
> indeholder et felt der hedder "id". Jeg vil bl.a. gerne have at den spytter
> id-nummeret ud for den ene tabel. Jeg har prøvet at gøre følgende men det
> giver ikke noget:
>
> $query = mysql_query("SELECT * FROM tabelA,tabelB WHERE
> tabelA.id=tabelB.tabelA_id",$mysql_link);
> while($data=mysql_fetch_array($query))
> {
> echo "Id-nummer for tabel 1: $data[tabel1.id]";
> }
>
> Hvis jeg i stedet for at skrive "$data[tabel1.id]" skriver "$data[id]" giver
> den mig til gengæld id-nummeret for tabelB!?
> Hvad gør jeg galt?
prøv..
SELECT tabelA.id FROM tabelA,tabelB WHERE tabelA.id = tabelB.tabelA_id
Iøvrigt skal database spørgsmål stilles i dk.edb.database ;)
mvh
Johan
| |
Rasmus Hansen (03-10-2003)
| Kommentar Fra : Rasmus Hansen |
Dato : 03-10-03 12:08 |
|
Torben Heikel Vinther wrote:
> Hej
>
> Jeg har et lille problem med mysql i php, som I måske kan hjælpe med. Det
> drejer sig om at jeg vil lave en simpel join mellem to tabeller, som begge
> indeholder et felt der hedder "id". Jeg vil bl.a. gerne have at den spytter
> id-nummeret ud for den ene tabel. Jeg har prøvet at gøre følgende men det
> giver ikke noget:
>
> $query = mysql_query("SELECT * FROM tabelA,tabelB WHERE
> tabelA.id=tabelB.tabelA_id",$mysql_link);
> while($data=mysql_fetch_array($query))
> {
> echo "Id-nummer for tabel 1: $data[tabel1.id]";
> }
>
> Hvis jeg i stedet for at skrive "$data[tabel1.id]" skriver "$data[id]" giver
> den mig til gengæld id-nummeret for tabelB!?
> Hvad gør jeg galt?
Det er fordi attributten ikke hedder tabelA.id, men bare id når den er
trukket ud af databasen. Så hvis du bruger $data[id] vil du få id-nummer
for tabelA (da det er id du joiner på vil det jo være det samme for de
to attributter i den enkelte row), hvis du bruger $data[tabelA_id] vil
du få id-nummeret fra tabelB, som peger på tabelA (foreign key)
Håber det gav mening
| |
|
|