我的逻辑有问题,因为我不是数据库专家。我有三个表,一个用户表,如下所示:
id|name |type_id| 1|user1| 1 | 2|user2| 2 | 3|user3| 2 | 4|user4| 2 |
其中用户类型 ID“2”表示经理。公司表:
id | name | 1 | shoes| 2 | pants| 3 | tv | 4 | light|
以及一个数据透视表 (companies_manager),它将一名或多名经理分配给一个或多个公司:
id|manager_id |company_id| 1| 2 | 1 | 2| 3 | 2 | 3| 4 | 3 | 4| 3 | 3 |
正如您所见,一家公司可以拥有一名或多名经理,反之亦然。当我想要检索不属于某个公司(例如公司1,检索用户3和4)的经理(换句话说,用户类型id为'2'的用户)但我不'时,就会出现问题我真的不知道如何查询,因为虽然它们不属于公司1,但它们属于另一家公司。感谢您的提前!
最佳答案
使用此查询
SELECT user.*, compnies.*, compnies_manager.* FROM user LEFT JOIN compnies_manager ON user.type_id=compnies_manager.manager_id LEFT JOIN compnies ON compnies_manager.compny_id=compnies.id WHERE user.type_id=2
关于mysql - 通过数据透视表连接两个表并在 mysql 中检索特定结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52341548/