通过数据透视表连接两个表并在mysql中检索特定结果

eulz3vhy  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(323)

我的逻辑有问题,因为我不是db方面的Maven。我有三个表,一个用户表如下所示:

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\u manager),它将一个或多个经理分配给一个或多个公司:

id|manager_id |company_id|
 1|     2     |     1    |
 2|     3     |     2    |
 3|     4     |     3    |
 4|     3     |     3    |

正如你所看到的,一个公司可以有一个或多个经理,反之亦然。当我想检索不属于某个公司(例如公司1,检索用户3和4)的经理(换句话说,用户类型id为“2”的用户)但我不知道如何进行查询时,就会出现问题,因为尽管他们不属于公司1,但他们属于另一个公司。谢谢你的预付款!

jljoyd4f

jljoyd4f1#

使用此查询

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

相关问题