1

ここで問題があります。クエリを実行すると:

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 構文にエラーがあります。' ) FROM product INNER JOIN product_description ON product.product_id = product_' at line 1 Error No: 1064 SELECT product. 、製品説明。,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 ORDER BY product.date_modified DESC

4

3 に答える 3

1

COUNTこのような関数は使用しないでください。COUNT(TableName.*)テーブルを結合しながら。このような列のいずれかを使用する必要がありますCOUNT(TableName.ColumnName)

例えばCOUNT(product_image.ID)

このSQLFiddleを参照してください

于 2012-12-05T10:01:39.793 に答える
0

派生クエリを使用してカウントする

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
于 2012-12-05T10:02:54.027 に答える
0

これを試して::

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
于 2012-12-05T10:08:24.233 に答える