2014-09-26 35 views
0

我有两个表格,一个表格和一个表格用户通知。我必须选择尚未收到通知的用户。我尝试了各种方法,例如使用此查询:如何在两个MySQL表之间的对抗中找到缺失的数字?

SELECT user.registration_id FROM user 
LEFT JOIN notify ON user.registration_id = notify.registration_id 

但它不起作用。我该如何解决?

另外你还链接了两个使用的表的结构。提前致谢。

CREATE TABLE IF NOT EXISTS `user` (
    `id` int(15) NOT NULL, 
    `user_id` int(10) unsigned NOT NULL, 
    `registration_id` varchar(200) NOT NULL, 
    `login_username` varchar(100) NOT NULL 
); 

CREATE TABLE IF NOT EXISTS `notify` (
    `id` int(11) unsigned NOT NULL, 
    `registration_id` varchar(200) NOT NULL, 
    `user_id` int(15) unsigned NOT NULL, 
    `start_notify` datetime NOT NULL, 
    `stop_notify` datetime NOT NULL, 
    `partial_score` int(15) unsigned NOT NULL 
); 

回答

0

你需要一个WHERE语句来找到用户,谁没有过一个通知尚未:

SELECT user.registration_id 
FROM user 
    LEFT JOIN notify 
    ON user.registration_id = notify.registration_id 
WHERE notify.id IS NULL; 

这将检索用户的所有用户ID没有在通知中的条目谁表。

+0

真的非常感谢,太容易了!我没有想到这一点。 – Kappa 2014-09-26 10:38:54

相关问题