0
不需要行我有2个表隐藏重复数据或查询
users
id, name, added_date
1, 'name1', '2016-08-23 21:01:59'
2, 'name2', '2016-08-23 21:01:59'
3, 'name3', '2016-08-23 21:01:59'
4, 'name4', '2016-08-23 21:01:59'
comments
day_added, comment, user_id
'Mon' , 'comment1', 3
'Tue' , 'comment2', 3
'N/A' , 'comment3', 3
'N/A' , 'comment4', 4
以下是我使用的查询。
SELECT id
, name
, DATE_FORMAT(users.added_date,'%a') today
, added_date
, day_added
, comment
, user_id
FROM users
LEFT
JOIN comments
ON users.id = comments.user_id
AND (
DATE_FORMAT(users.added_date,'%a') = comments.day_added
OR
comments.day_added = 'N/A'
)
这导致像以下
id, name, today, added_date, day_added, comment , user_id
1, 'name1', 'Tue' , '2016-08-23 21:01:59', NULL , NULL , NULL
2, 'name2', 'Tue' , '2016-08-23 21:01:59', NULL , NULL , NULL
3, 'name3', 'Tue' , '2016-08-23 21:01:59', 'Tue' , 'comment2', 3
3, 'name3', 'Tue' , '2016-08-23 21:01:59', 'N/A' , 'comment3', 3
4, 'name4', 'Tue' , '2016-08-23 21:01:59', 'N/A' , 'comment4', 4
我想我的结果等
id, name, today, added_date, day_added, comment , user_id
1, 'name1', 'Tue' , '2016-08-23 21:01:59', NULL , NULL , NULL
2, 'name2', 'Tue' , '2016-08-23 21:01:59', NULL , NULL , NULL
3, 'name3', 'Tue' , '2016-08-23 21:01:59', 'Tue' , 'comment2', 3
4, 'name4', 'Tue' , '2016-08-23 21:01:59', 'N/A' , 'comment4', 4
问题是USER_ID 3,它有两行与day_added星期二和 'N/A':
我只想要1行user_id 3
如果与ADDED_DATE day_added比赛则仅包括数据,不包括与 'N/A'
SQL小提琴是这里
http://sqlfiddle.com/#!9/ea5e39/2/0
帮助将高度赞赏
由于数据Advance
太棒了!,解决了我的问题,干净利落。非常感谢 !。 –