mysql - 如何确定表 1 中的主键是否出现在表 2 中

标签 mysql sql

如何判断一个表的主键是否不在当前表中

item                        (current table) category_item                                            
-------|--- ----           ----------------|------------|----------
item_id          item          category_item_id| category_id|  item_id 
2119                          1                   16           2090
        ^primary key                                     ^foreign key

我需要一个查询,告诉我“category_item”表中没有任何记录具有任何记录表“item”category_item.item_id 的外键

通俗地说,我想找出“item”中没有分配“category”的所有记录。

确实如此,我们在“category_item”中找不到任何具有表“ITEM”中任何记录主键的记录

category_item.item_i

SELECT 会在其中获取 item.item_id,例如

2113  
2110   
2310

其中每个尚未分配类别。

最佳答案

您只想不存在吗?

select i.item_d
from items i
where not exists (select 1 from category_item ci where ci.item_id = i.item_id);

关于mysql - 如何确定表 1 中的主键是否出现在表 2 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56228408/

相关文章:

java - 如何在左侧填充连字符: Oracle

带有 Union All 的 View 中的 MySQL Case 语句

mysql - sql - 获取连续的出席和缺席

mysql - 如何在sequelize上创建存储过程

MySQL全文搜索使用匹配返回错误的结果集

mysql - Eloquent 中一个查询的多个求和

sql - 如何减少简单选择查询的响应时间?

mysql - 如何从一列中分离多个数据?

php - 有没有办法检查 php mysql 中 "SELECT... INTO OUTFILE"的执行时间(已过或剩余)?

sql - CTAS 功能