这个问题在这里已经有答案了:
仅当值不存在时返回行(2个答案)
9个月前关门了。
我想做一个select,从一个表中获取数据,并连接一个表中的信息,其中来自demographic\u data的d.demographic\u category\u id不存在于demographic\u category列c.demographic\u category\u id中
所以是这样的:
SELECT *
FROM demographic_data d
INNER JOIN demographic_info i
ON d.demographic_info_id = i.demographic_info_id
AND i.student_id = 1
LEFT JOIN demographic_category c
ON d.demographic_category_id
NOT IN ( select c.demographic_category_id from demographic_category c);
我想做的是得到人口统计数据,这是正确的做这个声明。
SELECT *
FROM demographic_data d
INNER JOIN demographic_info i
ON d.demographic_info_id = i.demographic_info_id
AND i.student_id = 1
但是,然后从demographic\u category中获取数据,其中demographic\u data.demographic\u category\u id不存在于demographic\u category中,因此从上述段落的查询中获取id中不存在的类别。
1条答案
按热度按时间shyt4zoc1#
你可以使用
WHERE
条款。我建议你NOT EXISTS
:我觉得很奇怪,你会有一列不匹配,然而。如果定义了外键关系,则所有值(除了
NULL
当然)会匹配。编辑:
根据你的评论,你似乎只是想
LEFT JOIN
: