如何在两个MySQL表之间的对抗中找到缺失的数字?

时间:2014-09-26 10:30:07

标签: php mysql sql

我有两个表,一个表和一个表用户通知。我必须选择尚未收到通知的用户。我尝试过各种方式,例如使用此查询:

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
);

1 个答案:

答案 0 :(得分:0)

您需要WHERE语句才能找到尚未收到通知的用户:

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

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