Postgresql 从两个表中获取值,其中一个表是多对多表

Postgresql 从两个表中获取值,其中一个表是多对多表,postgresql,Postgresql,我只想获取那些v.v_名称,mtm.can_id=2未附加到该名称。怎么做 p.S.v.id=mtm.vac\U id 空缺表: +----+--------------------------+ | Id | v_name | +----+--------------------------+ | 1 | Registered Nurse | | 2 | Pharmacist | | 7 | Dentist

我只想获取那些v.v_名称,mtm.can_id=2未附加到该名称。怎么做

p.S.v.id=mtm.vac\U id

空缺表:

+----+--------------------------+ | Id | v_name | +----+--------------------------+ | 1 | Registered Nurse | | 2 | Pharmacist | | 7 | Dentist | | 8 | Computer Systems Analyst | | 9 | Physician | +----+--------------------------+ +----+--------------------------+ |Id| v|u名称| +----+--------------------------+ |1 |注册护士| |2 |药剂师| |7 |牙医| |8 |计算机系统分析员| |9 |医生| +----+--------------------------+ M-t-M表:

+----+--------+--------+ | Id | can_id | vac_id | +----+--------+--------+ | 1 | 1 | 1 | | 2 | 1 | 2 | | 3 | 2 | 2 | | 4 | 37 | 2 | | 5 | 37 | 1 | +----+--------+--------+ +----+--------+--------+ |Id | can | 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 +---+--------------------------+ +---+--------------------------+ |7 |牙 |1 |注册护士 |8 |计算机系统分析员 |9 |医生 +---+--------------------------+
如果您想得到所有非mtm.can_id=2的结果,请检查此项,但不进行测试

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

这应该对你有用

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

我没有足够的评级在另一个=(但我理解了这句话。不起作用=(返回:注册护士,注册护士,药剂师,药剂师,它不起作用吗?我已经检查了梅斯利,工作正常,没有=(需要15个声誉。现在我有10个。)=(如果can id不止一个,则它将不起作用,因为不需要逗号分隔。)