因此,我的问题涉及三个表,两个常规表和一个连接表,其中一个有很多并且属于很多关系。它们看起来像这样:
table1
--id
--data
table2
--id
--data
table1_table2
--table1_id
--table2_id
所以,我的问题是我将如何查询(使用连接)对于 table1 中的一个项目在 table1_table2 中具有一个或多个值的东西。例如:
Table 1
+----------+
|id | data |
+----------+
|1 | none |
+----------+
|4 | match|
+----------+
Table 2
+----------+
|id | data |
+----------+
|1 | one |
+----------+
|2 | two |
+----------+
table1_table2
+----------------------+
|table1_id | table2_id |
+----------------------+
|1 | 1 |
+----------------------+
|4 | 1 |
+----------------------+
|4 | 2 |
+----------------------+
我需要一个与表 1 行 id 4 匹配的查询,因为它有一个通过连接到表 2 中的第 1 行和第 2 行的链接。如果这令人困惑,请提出任何问题。
也许我有点不清楚,我使用 table1_table2 作为连接而不是从。我需要确保它与表 2 中的 1 和 2 匹配。
到目前为止,这是我的查询...
SELECT DISTINCT table1.id,
table2.data
FROM table1
LEFT JOIN table1_table2 ON table1.id = table1_table2.table1_id
LEFT JOIN table2 ON table2.id = table1_table2.table2_id
我需要一个可以使表 1 中的条目匹配表 2 中的 1 和 2 的位置。
我正在寻找的输出是:
+---------------------+
|table1.id|table2.data|
+---------------------+
|4 |one |
+---------------------+
|4 |two |
+---------------------+