逆3表查询

pes8fvy9  于 2021-06-17  发布在  Mysql
关注(0)|答案(1)|浏览(220)

我有这个查询,它给了我一个公司列表(tblprov)及其相应的类别(tblrubro)
两个表通过一个查找表(tblprovxrubro)进行关联

SELECT p.id, p.name, r.idCat, r.rubroDesc FROM tblprov p
JOIN tblprovxrubro pr on p.id = pr.idFirm
JOIN tblrubros r on pr.idCat = r.idCat
WHERE p.id = 20

在这个例子中,我有一个公司与两个公司类别相关,所以查询将给出这个结果

id     |  razonSocial |  idCat    |   catDesc  |
20     |    Firm 1    |     2     |Electronics |
20     |    Firm 1    |     3     | Software   |

如果我需要知道相反的,与公司无关的类别呢?
我想不通

shyt4zoc

shyt4zoc1#

你可以做一个 LEFT JOIN 从categories表到junction表。categories表将是最左边的,因为您要考虑所有类别。在连接表中没有对应行的所有类别 pid = 20 将是你的必修课。我们认为这些行使用 IS NULL 比较运算符。

SELECT r.idCat, r.rubroDesc 
FROM tblrubros r 
LEFT JOIN tblprovxrubro pr 
  on pr.idCat = r.idCat AND 
     pr.idFirm = 20
WHERE pr.idCat IS NULL

相关问题