2017-07-03 64 views
0

我只想获取那些没有附加mtm.can_id = 2的v.v_name。怎么做?从两个表中获取值,其中之一是多对多

P.S. v.id = mtm.vac_id

空缺表:

 
+----+--------------------------+ 
| Id |   v_name   | 
+----+--------------------------+ 
| 1 | Registered Nurse   | 
| 2 | Pharmacist    | 
| 7 | Dentist     | 
| 8 | Computer Systems Analyst | 
| 9 | Physician    | 
+----+--------------------------+ 

逐日盯表:

 
+----+--------+--------+ 
| Id | can_id | vac_id | 
+----+--------+--------+ 
| 1 |  1 |  1 | 
| 2 |  1 |  2 | 
| 3 |  2 |  2 | 
| 4 |  37 |  2 | 
| 5 |  37 |  1 | 
+----+--------+--------+ 

预期结果:

 
+---+--------------------------+ 
| 7 | Dentis 
| 1 | Registered Nurse   
| 8 | Computer Systems Analyst 
| 9 | Physician     
+---+--------------------------+ 
+0

我没有足够的等级上插入另一=图像(但我理解这句话。 – Miksser

回答

0

这应该为你工作

select * from vacancy where id not in (select distinct vac_id from mtm where can_id = 2) 
+0

如果可以更多然后一个,那么它将无法正常工作,因为不需要逗号分开 –

0
,如果你想获得的所有结果是不

mtm.can_id = 2然后检查但未测试

select * from v_table where id not in (select distinct vac_id from mtm_table where mtm.can_id = 2) 
+0

没有工作=(返回:注册护士,注册护士,药剂师,药剂师 – Miksser

+0

好的,检查这个问题 –

+0

检查我的更新的答案 –