【问题标题】:Join ID names of one MySQL table to IDs in another将一个 MySQL 表的 ID 名称连接到另一个表中的 ID
【发布时间】:2012-09-04 15:13:48
【问题描述】:

我有一张客户详细信息表,由如下所示的 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,但无法使查询正常工作。

【问题讨论】:

  • 向我们展示什么不起作用

标签: mysql inner-join


【解决方案1】:
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

【讨论】:

    【解决方案2】:

    应该这样做

    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
    

    【讨论】:

      【解决方案3】:

      实现此目的的一个简单查询是:

      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
      

      【讨论】:

        【解决方案4】:

        来,试试这个。

        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
        

        【讨论】:

          【解决方案5】:
          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
          

          【讨论】:

            猜你喜欢
            • 2022-01-07
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2014-10-20
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多