php - Mysql 连接三个表以获取唯一数据列表

标签 php mysql

我想显示 Users 表中的所有用户,其 id 在表 favorite_group_users 中显示为 user_id 对于 favorite_groups.id = favorite_group_users.id 的用户。

我使用了下面的查询,但它返回 null。

select users.id as user_id, users.first_name as name, 
        favorite_groups.id as group_id, 
        favorite_groups_users.user_id as carrier_id
from users
inner join favorite_groups
    on users.id = favorite_groups.user_id
inner join favorite_groups_users
    on favorite_groups.id = favorite_groups_users.favorite_group_id
where users.id = 38;

最佳答案

您可以尝试嵌套选择

select 
  favorite_groups.group_id, users_group.user_id
from 
  favorite_groups_users , 
  (select 
     favorite_groups_users.favorite_group_id, 
     users.user_id 
   from 
     users, favorite_groups_users 
   where 
     users.id = 38 and 
     users.id = favorite_groups.user_id
  ) users_group 
where 
   users_group.favorite_group_id=favorite_groups.group_id

关于php - Mysql 连接三个表以获取唯一数据列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51759242/

相关文章:

PHP MySQL 系统调用创建空文件,没有返回值,也没有产生错误信息

mysql - 我什么时候应该创建另一个字段作为主键?

mysql - 数据库设计——一个链接表还是多个链接表?

MySql SELECT 语句与 where LIKE 不返回结果

php - 从文本框中获取值

php - Yii2:登录时设置不正确的用户名或密码消息

php - MYSQL 表和列命名约定

javascript - 设置间隔不起作用?

php - 如何设置外键 ID #sf2 #doctrine2

mysql - MySQL 中的 HTML 复选框更改值