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

标签 mysql database phpmyadmin

我的逻辑有问题,因为我不是数据库专家。我有三个表,一个用户表,如下所示:

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/

相关文章:

php - 添加类似查询的搜索时,查询结果发生变化

php - 选择某些MySQL字段并使用php显示它们

php - 如何在 phpmyadmin 中创建外键

mysql - 在 MySQL 中将 BLOB 转换为 UTF-8

php - 使用 PHP 和 MySQL 仅显示当前用户的详细信息

mysql - 是拥有一张大 table 更好还是应该使用几张 table ?

mysql - 如何选择超过 4 个条件的记录

php - 创建一个以前从 mysql 数据库中删除的缺失用户 ID 的数组

php - 要求需要数据库连接的文件的正确方法

php - 文件包含可能存在 PHP 范围问题?