mysql - SQL JOIN 查询 - 链接四个表

标签 mysql sql join multiple-tables

我有 SQL 来显示该事件的所有事件和相关管理权限(如果有)。

当前的 SQL 代码:

SELECT `activities`.*, `admins`.`admin_role_id`
FROM (`activities`)
LEFT JOIN `admins` ON `admins`.`activity_id`=`activities`.`id` AND admins.member_id=27500
WHERE `activities`.`active` =  1

返回:

id | name | description | active | admin_role_id (or null)

然后我需要检测他们是否是该 Activity 中的活跃成员。

我有以下 SQL 代码:

SELECT DISTINCT `products`.`activity_ID` as joinedID
FROM (`transactions_items`)
JOIN `transactions` ON `transactions`.`id` = `transactions_items`.`id`
JOIN `products` ON `products`.`id` = `transactions_items`.`product_id`
JOIN `activities` ON `activities`.`id` = `products`.`activity_ID`
WHERE `transactions`.`member_id` =  27500
AND `activities`.`active` =  1

有没有办法将其合并到一个 SQL 查询中。由于 JOIN 的复杂性,我不知道如何使用正确的 JOIN 查询。

求助,谢谢! :)

最佳答案

这样试试

SELECT `activities`.*, `admins`.`admin_role_id`
FROM (`activities`)
LEFT JOIN `admins` ON `admins`.`activity_id`=`activities`.`id` AND admins.member_id=27500
    JOIN (`transactions_items`
    JOIN `transactions` ON `transactions`.`id` = `transactions_items`.`id`
    JOIN `products` ON `products`.`id` = `transactions_items`.`product_id`)
ON `activities`.`id`=`products`.`activity_ID`
WHERE `transactions`.`member_id` =  27500
AND `activities`.`active` =  1

关于mysql - SQL JOIN 查询 - 链接四个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17772055/

相关文章:

php - 按用户对 mysql 结果进行分组

php - mysql,加入2个表,并检查2个条件

php - 使用 PDO 实例执行查询时出现段错误

php - 最小值和最大值之间 mysqli

mysql - 截断 SQL 字符值

php - 步进搜索算法。从 N 中选择一个,重复,重复,查看最终结果

mysql - mysql左连接和右连接的联合加上wh​​ere条件不起作用

mysql - Django多个外键多次引用同一个表?

python - 如何使用 pandas read_gbq 防止 SQL 注入(inject)

mysql - 根据另一个表自动将数据插入到表中