我的問題是這樣的:從同一個表加入時是否可以輸出多行? 以此代碼爲例,我希望它輸出2行,每個表一個。相反,它所做的是給我1行所有的數據。SQL:當從同一個表加入時輸出多行
SELECT t1.*, t2.*
FROM table t1
JOIN table t2
ON t2.id = t1.oldId
WHERE t1.id = '1'
UPDATE
嗯,我有與UNION問題/ UNION ALL是這樣的:我不知道是什麼t1.oldId值等於。我所知道的是t1的id。我試圖避免使用2個查詢,以便有沒有辦法,我可以做這樣的事情:
SELECT t1.*
FROM table t1
WHERE t1.id = '1'
UNION
SELECT t2.*
FROM table t2
WHERE t2.id = t1.oldId
樣本數據
messages_users
id message_id user_id box thread_id latest_id
--------------------------------------------------------
8 1 1 1 NULL NULL
9 2 1 2 NULL 16
10 2 65 1 NULL 15
11 3 65 2 2 NULL
12 3 1 1 2 NULL
13 4 1 2 2 NULL
14 4 65 1 2 NULL
15 5 65 2 2 NULL
16 6 1 1 2 NULL
Query:
SELECT mu.id FROM messages_users mu
JOIN messages_users mu2 ON mu2.latest_id IS NOT NULL
WHERE mu.user_id = '1' AND mu2.user_id = '1' AND ((mu.box = '1'
AND mu.thread_id IS NULL AND mu.latest_id IS NULL) OR mu.id = mu2.latest_id)
這個查詢解決我的問題。但似乎我的問題的答案是不使用JOIN
而是使用UNION
。
你可以發佈一些示例數據?如果我們能看到數據可能會更容易。 – Taryn 2012-07-16 20:58:31