MySQL Composite Table JOIN QUERY

时间:2016-05-17 04:58:49

标签: mysql xampp rdbms

----------      ----------      ----------  
| 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}}?

2 个答案:

答案 0 :(得分:1)

以下查询仅用于显示来自TBL_1TBL_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;