簡體   English   中英

將一個MySQL表的ID名稱連接到另一個MySQL表的ID

[英]Join ID names of one MySQL table to IDs in another

我有一張由ID標識的客戶詳細信息表,如下所示:

ID (the clientcode), Name, Details

我想從另一個帶有銷售信息的表中引用ID,並在查詢中選擇客戶的名稱。

我的原始查詢字符串僅提取了ID(客戶代碼),它是:

SELECT clientcode, SUM(sales) FROM inventory WHERE manufacturer='1' 
  GROUP BY client code ORDER BY SUM(sales) DESC

我還要選擇由clientcode引用的客戶端的名稱。

我嘗試了一些LEFT JOIN,但無法使查詢正常工作。

SELECT i.clientcode
     , c.name
     , SUM(i.sales)
  FROM inventory i
  LEFT
  JOIN clientdetails c
    ON c.id = i.clientcode
 WHERE i.manufacturer='1' 
 GROUP BY i.clientcode, c.name
 ORDER BY SUM(i.sales) DESC

這應該做

SELECT c.ID, c.name, SUM(i.sales) 
FROM inventory i
JOIN clients c ON c.ID = i.clientcode
WHERE i.manufacturer='1' 
GROUP BY c.ID, ORDER BY SUM(i.sales) DESC

實現此目的的簡單查詢是:

SELECT i.clientcode, d.name, SUM(i.sales) FROM inventory i, details d
WHERE i.manufacturer='1'
  AND d.clientcode = i.clientcode
GROUP BY i.clientcode ORDER BY SUM(i.sales) DESC

在這里,嘗試一下。

SELECT  inventory.clientcode, 
        SUM(inventory.sales),
        clientdetails.Name
FROM inventory 
        INNER JOIN clientdetails
            ON inventory.clientcode = clientdetails.clientcode
WHERE inventory.manufacturer='1' 
GROUP BY inventory.clientcode, clientdetails.Name
ORDER BY SUM(inventory.sales) DESC
SELECT  a.clientcode, 
        SUM(a.sales),
        b.Name
FROM inventory a
        INNER JOIN clientdetails b
            ON a.clientcode = b.clientcode
WHERE a.manufacturer='1' 
GROUP BY a.clientcode, b.Name
ORDER BY SUM(a.sales) DESC

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM