为什么此查询返回重复 ID 的错误?我正在使用 PHP
SELECT DISTINCT * FROM products as prd
LEFT OUTER JOIN (SELECT DISTINCT * FROM product_aliases) AS product_aliases
ON product_aliases.product_id = prd.id
AND product_aliases.alias = '$alias'
LEFT OUTER JOIN (SELECT DISTINCT * FROM product_images as prdim
LEFT OUTER JOIN product_image_votes as prdimvt
ON prdimvt.product_image_id = prdim.id) AS productimages
ON productimages.product_id = prd.id
WHERE prd.id = $id
错误:
Database Error Error: SQLSTATE[42S21]: Column already exists: 1060 Duplicate column name 'id' SQL Query: SELECT DISTINCT * FROM products as prd LEFT OUTER JOIN (SELECT DISTINCT * FROM product_aliases) AS product_aliases ON product_aliases.product_id = prd.id AND product_aliases.alias = 'Pringles The Original' LEFT OUTER JOIN (SELECT DISTINCT * FROM product_images as prdim LEFT OUTER JOIN product_image_votes as prdimvt ON prdimvt.product_image_id = prdim.id) AS productimages ON productimages.product_id = prd.id WHERE prd.id = 1
最佳答案
您的查询中有 3 个表,其中可能至少有 2 个表具有相同的列 id
。在选择中使用 *
将选择这三个表中的所有列,多次选择 id
您可以通过使用别名指定列来解决此问题
SELECT DISTINCT prd.id, prd.Name FROM products as prd
LEFT OUTER JOIN (SELECT DISTINCT * FROM product_aliases) AS product_aliases
ON product_aliases.product_id = prd.id
AND product_aliases.alias = '$alias'
... rest of your query here
你也可以这样做
SELECT DISTINCT prd.* FROM products as prd
如果你不想一一列出
关于php - 查询错误重复列id sql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14552533/