我有一個MYSQL查詢從兩個表中選擇。第二個表可能不一定具有與第一個表匹配的聯合ID。讓我們用這兩個作爲例子:加入返回空列?
++++++++++++++++++
table: t1
column: id
column: test_id
column: info
table t2
column: t2id
column: test_id
column: extra_info
++++++++++++++++++
我插入以下這些行到表(這只是所有僞此刻):
insert into t1 values (1, 4, "asd")
insert into t1 values (2, 25, "dfg")
insert into t2 values (1, 25, "123")
現在我的目標是將兩個表連接在一起,但我遇到了連接問題。如果第二個表(t2)似乎沒有匹配的行,它會使原始表中的連接列爲NULL?它爲什麼這樣做?下面是一個例子查詢:
SELECT * FROM `t1` LEFT JOIN `t2` ON (`t1.test_id` = `t2.test_id`) WHERE `t1.id` = 1;
現在我絕對沒有問題,如果他們匹配,但如果沒有行存在,那麼從T1爲test_id被設置爲NULL ......我的目標某種原因如果有什麼要加入的話,就加入這兩張表。 編輯:如果沒有什麼要加入,那麼我想通過將所有的t2列設置爲NULL或僅僅返回t1數據來從t1返回數據。我需要做一個子查詢嗎?如果是的話,它會是什麼?謝謝:)
左[外]加入意味着「保留每個記錄在左邊」 - 這包括*不*加入記錄在右側的記錄。 – 2012-05-08 23:41:34
你想要發生什麼?你能舉一個預期結果的例子嗎? –
Errr,我意識到現在我可能在我想要的方面有點不清楚。我想要做的是獲取第一個表的信息,並添加第二個表的信息(如果存在)。如果它不存在,那就給我第一個表,第二個表全部設置爲NULL或者第一個表。 – MasterGberry