将三个表连接在一起,其中主键位于一个表中,外键位于其他两个表中

时间:2019-02-06 10:17:49

标签: php mysql

enter image description here

$query="SELECT i.trans_date, f.col_code,f.trans_qty ,t.dept_code 
        FROM table1 AS i 
        LEFT JOIN table2 AS f 
        ON f.trans_no=i.trans_no 
        LEFT JOIN table3 AS t 
        ON t.trans_no=i.trans_no";

trans_no --> Primary key in table 1
trans_no --> Foreign key in table 2,3

我正在尝试从3个表中获取上述字段,但没有得到?

我想获取date(tbl1),qty(tbl2),col_code(tbl2),col_code(tbl3),dept_code(tbl3)。 请帮助

2 个答案:

答案 0 :(得分:0)

可能没有相同的键值。请检查表中的行数据。

答案 1 :(得分:0)

您应该对列col_code使用别名,以避免歧义(和相关的查询错误),因为这些列名称存在于同一查询涉及的两个不同表中 例如,您可以添加别名col_code_t2和cold_code_t3

query="Select i.trans_date
  , f.col_code col_code_t2

  , f.trans_qty 
  , t.col_code cold_code_t3
  , t.dept_code 
from table1 AS i 
LEFT JOIN table2 AS f ON f.trans_no=i.trans_no 
LEFT JOIN table3 AS t ON t.trans_no=i.trans_no";