Mysql 从表1中选择不在表2中的列
我有两张桌子Mysql 从表1中选择不在表2中的列,mysql,sql,mysql-workbench,Mysql,Sql,Mysql Workbench,我有两张桌子 table1 ======================================= tid subcategory category --------------------------------------- 1 SUBCATEGORY1 CATEGORY1 2 SUBCATEGORY1 CATEGORY2 3 SUBCATEGORY2 CATEGORY1 4 SUBCATEGORY3 CA
table1
=======================================
tid subcategory category
---------------------------------------
1 SUBCATEGORY1 CATEGORY1
2 SUBCATEGORY1 CATEGORY2
3 SUBCATEGORY2 CATEGORY1
4 SUBCATEGORY3 CATEGORY1
5 SUBCATEGORY4 CATEGORY1
6 SUBCATEGORY5 CATEGORY1
7 SUBCATEGORY6 CATEGORY1
8 SUBCATEGORY7 CATEGORY1
9 SUBCATEGORY8 CATEGORY1
10 SUBCATEGORY9 CATEGORY1
table2
=======================================
t2id subcategory category pid
---------------------------------------
1 SUBCATEGORY1 CATEGORY1 1
2 SUBCATEGORY1 CATEGORY2 1
3 SUBCATEGORY2 CATEGORY1 1
我试图显示表1中不在表2中的所有行,结果应该是这样的
=======================================
tid subcategory category
---------------------------------------
4 SUBCATEGORY3 CATEGORY1
5 SUBCATEGORY4 CATEGORY1
6 SUBCATEGORY5 CATEGORY1
7 SUBCATEGORY6 CATEGORY1
8 SUBCATEGORY7 CATEGORY1
9 SUBCATEGORY8 CATEGORY1
10 SUBCATEGORY9 CATEGORY1
我正在使用此查询
select tl.* from table1 tl where subcategory and category not in(SELECT tl.subcategory, tl.category FROM table1 as tl join table2 as bm where bm.pid='1' and tl.subcategory=bm.subcategory and tl.category=bm.category);
但它不起作用,请…我会在这里使用exists逻辑:
SELECT t1.tid, t1.subcategory, t1.category
FROM table1 t1
WHERE NOT EXISTS (SELECT 1 FROM table2 t2
WHERE t2.pim = 1 AND
t2.subcategory = t1.subcategory AND t2.category = t1.category);
您能在这里告诉我SELECT 1的含义吗
SELECT 1
只返回一个记录,其中一列的值为1,但这里的逻辑是检查WHERE
子句中是否存在条件。有关语法的详细信息,请阅读关于exists。