如何使用三个表在MySQL中使用SQL语句获取矩阵样式数据
How to get matrix style data using SQL statement in MySQL using three tables
我有三个 table,中间的 table 是多对多结果 table (AB)。什么是最有效的SQL语句得到:
1 - 来自其他两个 tables(Table A 和 Table B)的所有记录,无论 Table AB 中是否存在匹配数据
2 - 如果两个 table 链接(即在多对多结果 table 中有一个记录),则每个记录应显示为真,如果为空
,则为假
基本上我想显示一个矩阵table,第一列显示来自table A的所有记录,第一行显示所有记录table B,那么相交的单元格应该如果 table AB 中有匹配的记录,则勾选。
如果我不介意在必要时以编程方式解析最终数据集
谢谢
尝试这样的事情:
SELECT A.id AS "A id", B.id AS "B id", AB.id IS NOT NULL AS "Match"
FROM A
JOIN B
LEFT JOIN AB ON A.id = A_id AND B.id = B_id
SQL Fiddle 也有一个 ORDER BY
子句。
我有三个 table,中间的 table 是多对多结果 table (AB)。什么是最有效的SQL语句得到:
1 - 来自其他两个 tables(Table A 和 Table B)的所有记录,无论 Table AB 中是否存在匹配数据 2 - 如果两个 table 链接(即在多对多结果 table 中有一个记录),则每个记录应显示为真,如果为空
,则为假基本上我想显示一个矩阵table,第一列显示来自table A的所有记录,第一行显示所有记录table B,那么相交的单元格应该如果 table AB 中有匹配的记录,则勾选。
如果我不介意在必要时以编程方式解析最终数据集
谢谢
尝试这样的事情:
SELECT A.id AS "A id", B.id AS "B id", AB.id IS NOT NULL AS "Match"
FROM A
JOIN B
LEFT JOIN AB ON A.id = A_id AND B.id = B_id
SQL Fiddle 也有一个 ORDER BY
子句。