SQL查询 - 从另一个表获取名称
问题描述:
基本上我有2个表:uclk_user
和uclk_task
SQL查询 - 从另一个表获取名称
uclk_user
表已经user_id
,name
,postcode
uclk_task
表有user_id
,job_id
,description
,fully_completed
,date_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
这应该怎么做?
答
使用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
答
试试这个
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
感谢您的回复快...我想你的建议,似乎得到一个错误。 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 user1625706
它更适合使用表的别名,并将它们用于每列以避免将来出现问题。 +1用于显式连接。 – Sarwara
@ user1625706:哦,是的。我的不好,你必须明确你想使用哪个'user_id'列(来自uckl_user或uckl_task),通过预先考虑表名或别名 – knittl