---------- ---------- ----------
| TBL_1 | | TBL_2 | | TBL_3 |
---------- ---------- ----------
| id | | id | |TBL_1_id|
| foo | | bar | |TBL_2_id|
---------- ---------- ----------
我,有点,在MySQL中有这组特定的表。TBL_3 是将TBL_1行绑定在一起的复合表,TBL_2行。我想通过查询TBL_3输出TBL_1和TBL_2的内容,但我似乎无法掌握JOIN
的概念。
根据我所阅读的内容,它应该有点像这样:
从tbl_3
中选择 * RIGHT JOIN (tbl_1, tbl_2( ON (tbl_1.id=tbl_3.tbl_1_id, tbl_2.id=tbl_3.tbl_2_id(
其中 tbl_3.id='some_id';
我一无所获。 此外,当我调整该查询时,有时会返回行,但从未显示 IDK 为什么。 这是为什么呢?
**上面的查询是否与此相同?
从tbl_3
中选择 * 右联接tbl_1 tbl_1.id=tbl_3.tbl_1_id
右联接tbl_2 ON tbl_2.id=tbl_3.tbl_1_id
其中 tbl_3.id='some_id';
**编辑:在解释上面带有多个连接的查询时,左表是否由第二个表引用,RIGHT JOIN
返回的表是第一个RIGHT JOIN
的乘积?
以下查询仅是可用于显示桥接表中出现的所有id
对的TBL_1
和TBL_2
信息TBL_3
行:
SELECT t1.foo, t2.bar
FROM TBL_1 t1
INNER JOIN TBL_3 t3
ON t1.id = t3.TBL_1_id
INNER JOIN TBL_2 t2
ON t2.id = t3.TBL_2_id
SELECT t1.foo, t2.bar
FROM TBL_1 t1
left join TBL_3 t3
ON t1.id = t3.TBL_1_id
left JOIN TBL_2 t2
ON t2.id = t3.TBL_2_id;