繁体   English   中英

SQL Left将两个表合并为一个

[英]SQL Left Join two tables into one

列出来自Madison的消费者名称和每个消费者的计算机请求数(如果没有请求则为0)

现在,以下查询说它无法绑定,我认为这是因为我试图将两个表LEFT JOIN到Tb_Requests。 我不知道其他任何方式。

   SELECT Tb_Consumer.Name, COUNT(tb_requests.Prod_ID) 'Number of Requests'
     FROM Tb_Consumer, Tb_Product 
LEFT JOIN Tb_Requests 
       ON Tb_Consumer.Con_ID = Tb_Requests.Con_ID
    WHERE Tb_Consumer.City = 'Madison'
      AND Tb_Product.Name = 'Computer'
 GROUP BY Tb_Consumer.Name

我有以下表格:

Tb_Consumer - 名称,城市,Con_ID
Tb_Supplier - 名称,城市,Supp_ID
Tb_Offers - 名称,数量,Prod_ID,Supp_ID
Tb_Product - 名称,Prod_ID
Tb_Requests - 名称,数量,Prod_ID,Con_ID
Tb_Transactions - Tran_ID,Supp_ID,Con_ID,数量,价格

您可以使用以下查询解决此问题:

SELECT T1.Name, Count(Tbl_Computer.Prod_ID)
FROM Tbl_Consumer T1 LEFT JOIN 
     (SELECT T2.Prod_ID, T2.Con_ID 
      FROM Tb_Requests T2 
           INNER JOIN Tb_Product T3 
           ON T2.Prod_ID = T3.Prod_ID 
      WHERE T3.Name = 'Computer') AS Tbl_Computer
      ON T1.Con_ID = Tbl_Computer.Con_ID 
 WHERE T1.City = 'Madison'

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM