嗨,伙计们,我正在解决一个问题。我有两个表,表A包含用户列表,表B包含他们的“打卡”列表,此时im从表B中选择不同的日期,然后对于每个日期,im检查用户是否已经为该日期签到。但我希望能够做的是从表B中选择一些数据。但当我尝试时,我会收到来自表B的所有数据的垃圾邮件。这是我的语句。
SELECT *
FROM Table A,
Table B
WHERE EXISTS (SELECT *
FROM Table B
WHERE Table B.user_id = Table A.id
And Table B.date = 'given date here')发布于 2013-12-16 11:50:02
我仍然不明白您为什么要选择不存在的数据,但如果您仍然必须这样做,那么我会将您的模式视为-
USER
-----------------
user_id
username
...
...
USER_CLOCKIN
-----------------
user_id
clockin_datetime
...
...我的疑问是-
SELECT u.*, uc.*
FROM user u LEFT OUTER JOIN user_clockin uc
ON u.user_id = uc.user_id
WHERE uc.user_id IS NULL
;这将从两个表中选择所有列。
发布于 2013-12-16 11:51:35
尝试运行以下命令:
SELECT table_a.name,table_b.date FROM table_a LEFT JOIN table_b ON table_a.id=table_b.id WHERE table_b.date=<xx.yy.zzzz>当然,用想要的日期替换xx.yy.zzzz。此外,访问http://www.mysql.org转到文档,并找到更多关于join,left join和right join的信息……
https://stackoverflow.com/questions/20602811
复制相似问题