在sqlite的table2中从table1中选择所有零项?

时间:2018-10-21 15:43:54

标签: sql sqlite select union outer-join

考虑2个表,用户和联系人:

CREATE TABLE user (
    id INT,
    name VARCHAR(36)
);

CREATE TABLE contact (
    id INT,
    phone INT,
    userID INT
);

INSERT INTO user (id,name) VALUES 
(1,'Frank'),
(2,'Henry'),
(3,'John')

INSERT INTO contact (id,phone,userID) VALUES 
(1,911,1),
(2,922,2),
(3,933,2)

我对所有没有任何联系的用户条目感兴趣。

这些表的外部联接返回4个结果:

SELECT contact.*, user.*
FROM   contact 
       LEFT JOIN user 
          ON contact.userID = user.id
UNION ALL
SELECT contact.*, user.*
FROM   user
       LEFT JOIN contact
          ON contact.userID = user.id
WHERE  contact.userID IS NULL

如何选择contact.userID为null(在此示例中为1个结果)的所有用户?

1 个答案:

答案 0 :(得分:0)

这是您的第二个子查询:

tbDistanceCovered.Text = Convert.ToString("n2" + tbOutput.Text);

它确实可以满足您的要求,尽管我会从SELECT c.*, u.* FROM user u LEFT JOIN contact c ON c.userID = u.id WHERE c.userID IS NULL; 中删除c.*