【问题标题】:Three table join count in MySQLMySQL中的三个表连接计数
【发布时间】:2012-11-23 02:49:03
【问题描述】:

我这里有问题;当我进行查询时:

SELECT product.*,product_description.*,COUNT(product_image.*) 
FROM " . DB_PREFIX . "product  
INNER JOIN product_description ON product.product_id = product_description.product_id 
INNER JOIN product_image ON product.product_id = product_image.product_id 
ORDER BY product.date_modified DESC

我想为表 product_image 选择 3 个表 n 1 个计数,但出现此错误:

注意:错误:您的 SQL 语法有错误;检查手册 对应于您的 MySQL 服务器版本以获得正确的语法 在 ' 附近使用) FROM product INNER JOIN product_description ON product.product_id = product_' 在第 1 行错误编号:1064 SELECT product.,product_description.,COUNT(product_image.) FROM product INNER JOIN product_description ON product.product_id = product_description.product_id INNER JOIN product_image ON product.product_id = product_image.product_id 订购方式 product.date_modified DESC

【问题讨论】:

    标签: mysql join count


    【解决方案1】:

    你不应该像这样使用COUNT 函数。 COUNT(TableName.*) 加入表格时。您需要使用它的任何列,例如COUNT(TableName.ColumnName)

    例如COUNT(product_image.ID)

    See this SQLFiddle

    【讨论】:

      【解决方案2】:

      试试这个::

      SELECT 
      product.*,
      product_description.*,
      COUNT(1) 
      FROM " . DB_PREFIX . "product  
      INNER JOIN product_description ON product.product_id = product_description.product_id 
      INNER JOIN product_image ON product.product_id = product_image.product_id 
      ORDER BY product.date_modified DESC
      

      【讨论】:

        【解决方案3】:

        使用派生查询进行计数

        SELECT 
            product.*,
            product_description.*,
            pi.Count as T_Count
        FROM " . DB_PREFIX . "product  
        INNER JOIN product_description ON product.product_id = product_description.product_id 
        INNER JOIN (SELECT product_id , count(*) as Count FROM product_image) as pi ON product.product_id = pi.product_id 
        ORDER BY product.date_modified DESC
        

        【讨论】:

        • count(*)的结果无论如何都不能返回null,所以放ifnull也没用
        猜你喜欢
        • 2014-02-24
        • 1970-01-01
        • 2013-05-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-04-12
        • 2012-05-02
        相关资源
        最近更新 更多