用于从3个表

时间:2015-10-27 08:25:03

标签: mysql

我有分支表,库存表和项目表。我想要检索item iditem nameqty(数量)和branch name(branch_add)。

SELECT tbl_item.item_name , 
tbl_inventory. tbl_item_item_ID , tbl_inventory.qty , tbl_branch.branch_add
FROM tbl_item,tbl_inventory ,tbl_branch
WHERE (tbl_inventory.tbl_item_item_ID = tbl_item.item_ID) JOIN (tbl_branch.branch_ID=tbl_inventory`.tbl_branch_branch_ID)

这是我写过的代码,但它给出了以下错误。

  

错误1064(42000):您的SQL语法有错误;检查   手册,对应右边的MySQL服务器版本   要在'加入item_ID.tbl_item =附近使用的语法   tbl_item_item_ID.tbl_inventory'在第3行

有谁可以帮我解决这个问题。表格将显示在附加的页面上。

enter image description here

2 个答案:

答案 0 :(得分:1)

您的AND条件之间缺少WHERE

select 
    tbl_branch_branch_ID.tbl_inventory
    , item_name
from tbl_inventory
   , tbl_item
   , tbl_branch
where 
    branch_ID.tbl_branch=tbl_branch_branch_ID.tbl_i
    and item_ID.tbl_item = tbl_item_item_ID.tbl_inventory;

此外,您的JOIN条件有点偏离。

我认为这是您实际上正在寻找的查询

select
    t_inv.*
   , t_itm.item_name
from tbl_inventory t_inv
    inner join tbl_item t_itm on t_inv.t_item_item_id = t_itm.item_id
    inner join tbl_branch t_br on t_br.branch_id = t_inv.tbl_branch_branch_id

使用显式JOIN可以更好,更清晰地读取代码,还可以提高代码性能。

答案 1 :(得分:0)

SELECT
tbl_item.item_name,
tbl_inventory.tbl_item_item_ID,
tbl_inventory.qty,
tbl_branch.branch_add
FROM
tbl_item,
tbl_inventory,
tbl_branch
WHERE
(
inner join tbl_item ON tbl_inventory.tbl_item_item_ID = tbl_item.item_ID
inner join branch_ID ON tbl_branch.branch_ID = tbl_inventory.tbl_branch_branch_ID
);

上述查询给出了语法错误。