---------- ---------- ----------
| 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
s的概念。
根据我所读的内容,它应该有点像这样:
SELECT * FROM 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&#39 ;;
我一无所获。另外,当我调整该查询时,有时返回行但从未显示IDK原因。这是为什么?
**以上查询是否与此相同?
SELECT * FROM tbl_3
RIGHT JOIN tbl_1 ON tbl_1.id = tbl_3.tbl_1_id
RIGHT JOIN tbl_2 ON tbl_2.id = tbl_3.tbl_1_id
在哪里tbl_3.id =' some_id&#39 ;;
**编辑:在解释上面带有多个连接的查询时,左表被第二个RIGHT JOIN
引用,返回的表是第一个{{1}的乘积{1}}?
答案 0 :(得分:1)
以下查询仅用于显示来自TBL_1
和TBL_2
的信息,用于显示在桥表id
中的所有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
答案 1 :(得分:0)
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;