剛接觸mysql 想多表查詢,不知道怎么使用。
我想查找表1中條件name=‘姓名‘ 且 在表2中不存在此ID的人員ID和姓名,怎么用一條select陳述句得到資訊
表1 表2
ID name ID sex
1 小李 1 男
2 小王 3 女
如上表,我想得到是,表1的姓名為小王ID且在表2中不存此ID的資訊 也就是說我想得到 ID 2 name 小王
如果用兩條,應該是先找出表1小王的ID
select ID from 表1 where name='小王'
然后
select 表1得到的ID from 表2 where ID=‘表1得到的ID’
表述不是太清楚。見諒
uj5u.com熱心網友回復:
存在用 IN, 不存在用 NOT INselect ID from 表1 where name='小王' where id not in ( select id from 表2 )
uj5u.com熱心網友回復:
或者用 EXISTS, NOT EXISTSselect ID from 表1 where name='小王'
WHERE EXISTS( SELECT * from 表2 where ID= 表1.ID
uj5u.com熱心網友回復:
失誤,用 AND, 而不是兩個 WHEREselect ID from 表1 where name='小王' AND id not in ( select id from 表2 )
select ID from 表1 where name='小王' AND EXISTS( SELECT * from 表2 where ID= 表1.ID
uj5u.com熱心網友回復:
select id,name from 表1 a left join 表2 b on a.id = b.id where b.id is null樓主可以試下,應該可以解決問題
uj5u.com熱心網友回復:
樓主該結貼了uj5u.com熱心網友回復:
這種需求,因為會涉及到2個表的資料,所以可以用關聯來處理:select distinct t1.* from 表1 t1
left join 表2 t2
on t1.id = t2.id
where t1.name='小王'
and t2.name is null
也可以用子查詢來實作,如1-2樓的寫法
uj5u.com熱心網友回復:
結貼給分了。boyuj5u.com熱心網友回復:
結貼給分了。boy轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/106452.html
標籤:MySQL
