Tags:
php
Hejsa
Jeg har en database med to tabeller (A og B). Hver tabel har en række med samme navn (row).
Nu vil jeg gerne have et array (final) bestående af KUN de tilfælde der optræder i BEGGE tabellers rækker (row A og row B). Altså vil jeg trække to arrays ud og så sammenholde dem, slette alt der ikke optræder begge steder, og ende op med et tredje array (final)bestående af de forekomster der stod i begge tabeller i de pågældende rækker.
Hvordan gør man dette?
Mvh
Gunnar
select * FROM A AS a JOIN B AS b ON(a.id=b.id)
Den sidste der virker...næsten. Problemet er, at jeg skal kun have det fra rækken i A, som også findes i rækken af sammen navn i B. Ikke det hele lagt sammen...
Mvh
Gunnar
hvad så med?
select A.* FROM A AS a JOIN B AS b ON(a.id=b.id)
eller
sql = "SELECT A.* FROM A,B WHERE A.name = B.name"
Eller
"SELECT A.*, B.* FROM (A) LEFT JOIN (B) ON (A.name = B.name) WHERE (A.name = B.name)"
Husk, at hvis A og B indholder kolonner af samme navn, skal du specifisere nøjagtigt hvilke kolonner du skal bruge.
nedestående eksempel giver fejl:
SELECT A.id, B.id FROM (A) LEFT JOIN (B) ON (A.name = B.name) WHERE (A.name = B.name)"
Løsning med aliaser:
SELECT A.id AS A_id, B.id AS B_id FROM (A) LEFT JOIN (B) ON (A.name = B.name) WHERE (A.name = B.name)"
Tusind tak for hjælpen! Nu kører det med dette script:
mysql_query("SELECT DISTINCT t.theme FROM theme t, gallery g WHERE t.theme=g.theme");
Mvh
Gunnar