Wenn Left JOIN NULL dann Frage eine andere Spalte ab

Th3RaZe

Aktiver Benutzer
Beiträge
37
Hallo, folgende Datenbank: MySql,

Ich habe folgendes:

Code:
LEFT JOIN tabelle2 ON tabelle1.content_id = tabelle2.content_id and tabelle2.user_id = 0815

Das gibt dann natürlich nur einen Wert aus wenn dieser bei tabelle2.user_id vorkommt, aber nicht wenn dieser bei tabelle2.user_id_2 vorkommt. Jetzt ist die Frage welche Abfrage brauch ich um bei einem NULL Fall dann die gleiche "0815" id bei tabelle2.user_id_2 abzufragen, so das ich falls er bei tabelle2.user_id dennoch vorhanden ist, nicht doppelt ausgegeben wird?
 
Werbung:
coalesce() ist Dein Freund:

Code:
est=# create table master (id int primary key, name text);
CREATE TABLE
test=# create table detail1(m_id int references master, val int);
CREATE TABLE
test=# create table detail2(m_id int references master, val int);
CREATE TABLE
test=# insert into master values (1,'master1');
INSERT 0 1
test=# insert into master values (2,'master2');
INSERT 0 1
test=# insert into master values (3,'master3');
INSERT 0 1
test=# insert into detail1 values (1, 10);
INSERT 0 1
test=# insert into detail2 values (2, 20);
INSERT 0 1
test=# select m.name, coalesce(d1.val, d2.val) from master m left join detail1 d1 on m.id=d1.m_id left join detail2 d2 on m.id=d2.m_id;
  name  | coalesce
---------+----------
 master2 |  20
 master1 |  10
 master3 |   
(3 rows)
 
Zurück
Oben