一个sql语句中的两个内连接

时间:2016-05-23 08:00:08

标签: mysql

这里有什么问题?我只想显示 item_tb 中的所有项目,包含2个不同的组,vicma和branch,但它不返回任何内容。它只能在一个内部连接中起作用,但是当我加入另一个内部连接时,它什么都不显示。

 |-------------|-------------------------|---------------|
 |item_tb      | vicma_tb                | branch_tb     |
 |             |  vID - PK               |   id-PK       |
 |branchID-FK  |                         |               |
 |vicma - FK   |                         |               |
 |-------------|-------------------------|---------------|


$sql = "
SELECT item_tb.*
     , branch_tb.* 
     , vicma_tb.* 
  from item_tb 
  JOIN branch_tb 
    on item_tb.branchID = branch_tb.id 
  JOIN vicma_tb  
    on item_tb.vicma = vicma_tb.vID ";

1 个答案:

答案 0 :(得分:1)

好像你需要做LEFT JOIN而不是INNER JOIN。 LEFT JOIN将返回原始表中的所有值,如果没有匹配则返回NULL。尝试:

SELECT  item_tb.*, branch_tb.* , vicma_tb.* from item_tb 
LEFT JOIN  branch_tb on item_tb.branchID = branch_tb.id 
LEFT JOIN vicma_tb on item_tb.vicma = vicma_tb.vID