2012-08-26 77 views
3

基本上我有2個表:uclk_useruclk_taskSQL查詢 - 從另一個表獲取名稱

uclk_user表已經user_idnamepostcode

uclk_task表有user_idjob_iddescriptionfully_completeddate_due

我想在下面的任務查詢中包含uclk_user的用戶名... 顯然,user_id是關鍵。

select job_id, user_id, fully_completed, description, date_due 
from uclk_task 
WHERE date_due <= NOW() AND fully_completed = 0 
ORDER BY date_due ASC 

這應該怎麼做?

回答

5

使用JOIN從多個表在一個共同的標準來選擇

SELECT t.job_id, t.user_id, t.fully_completed, t.description, t.date_due, u.name 
FROM uclk_task t 
INNER JOIN uckl_user u 
ON t.user_id = u.user_id 
WHERE t.date_due <= NOW() AND t.fully_completed = 0 
ORDER BY t.date_due ASC 
+0

感謝您的回覆快...我想你的建議,似乎得到一個錯誤。 SQL錯誤:字段列表中的列'user_id'不明確SELECT job_id,user_id,fully_completed,description,date_due FROM uclk_task INNER JOIN uclk_user ON uclk_task.user_id = uclk_user.user_id WHERE date_due <= NOW()AND fully_completed = 0 ORDER BY date_due ASC – user1625706

+0

它更適合使用表的別名,並將它們用於每列以避免將來出現問題。 +1用於顯式連接。 – Sarwara

+0

@ user1625706:哦,是的。我的不好,你必須明確你想使用哪個'user_id'列(來自uckl_user或uckl_task),通過預先考慮表名或別名 – knittl

1

試試這個

select job_id, user_id, fully_completed, description, date_due 
    from uclk_task 
    Left join 
    on date_due <= NOW() AND fully_completed = 0 
    ORDER BY date_due ASC 
相關問題