0
首先,對於這個問題的措辭表示歉意,因爲它對我來說似乎相當不足。MySQL LEFT JOIN一致地從多個表中返回數據
我有三個表格:t1
,t2
和t3
。他們都共享一個外鍵id
,這也是他們的主要關鍵。我想要做這樣的事情:
SELECT col1, col2 FROM t1 LEFT JOIN (t2, t3) ON (t1.id=t2.id AND t1.id=t3.id);
自然,當t1
沒有匹配的行,即使其它表做查詢將返回空。我無法預測哪個表可能包含或可能不包含數據,但我仍想返回值(對於不匹配的表,使用NULL
s)。我該怎麼做?
我想通過定義LEFT JOIN,這是預期的行爲。所以,也許是我應該使用的另一種JOIN!
編輯
t1
id col1 col2
------------------
<EMPTY>
t2
-----
id col3 col4
------------------
1 foo bar
2 faa boo
3 faz baz
t3
-----
id col5 col6
------------------
3 hoo har
4 haa boo
當我這樣做:
SELECT * FROM t1 <WHATEVER JOIN> (t2, t3) ON (t1.id=t2.id AND t1.id=t3.id) WHERE id = 3;
我想看到的東西,如:
id: NULL
col1: NULL
col2: NULL
col3: faz
col4: baz
col5: hoo
col6: har
更大的問題是:你想輸出什麼?如果你想要3之間的任何共同性,那麼爲什麼不暗示加入OR和所有3個排列? (t1.id = t2.id或t1.id = t3.id或t2.id = t3.id) – user3741598