gpt4 book ai didi

php - Mysql连接通过第三个表关联的两个表

转载 作者:行者123 更新时间:2023-11-29 02:25:05 25 4
gpt4 key购买 nike

我有两个表,它们通过第三个表相关联。第三个表有前两个表的 ID 和关联值。可以在此处找到结构和 fiddle 。

sqlFiddle

我想要做的是获取包含所有 session 和属性的行。所以预期的结果是

+-------+-----------+-------+
| name | attr_name | value |
+-------+-----------+-------+
| sessA | attrA | 9 |
| sessA | attrB | 5 |
| sessA | attrC | null |
| sessB | attrA | null |
| sessB | attrB | 1 |
| sessB | attrC | 1 |
| sessC | attrA | 1 |
| sessC | attrB | null |
| sessC | attrC | null |
+-------+-----------+-------+

但我只得到匹配的行。我错过了什么?

最佳答案

听起来您想要在属性表和 session 表之间使用笛卡尔积。为此,您可以使用 CROSS JOIN。然后,您需要在与最终表的联接中包含 attr_id 字段以获取 NULL 值:

SELECT a.name, b.attr_name , c.value
FROM tbla a CROSS JOIN tblB b
LEFT JOIN tblc c ON a.sess_id = c.sess_id
AND b.attr_id = c.attr_id
ORDER BY a.name, b.attr_name

关于php - Mysql连接通过第三个表关联的两个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23925696/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com