Php 查询错误-重复列id sql
为什么此查询返回重复id的错误?我正在使用phpPhp 查询错误-重复列id sql,php,mysql,sql,Php,Mysql,Sql,为什么此查询返回重复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 JOI
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
错误:
数据库错误:SQLSTATE[42S21]:列已存在:1060
重复的列名“id”SQL查询:从产品中选择DISTINCT*
作为prd左外连接,从产品别名中选择DISTINCT*,如下所示
product_别名上的product_别名。product_id=prd.id和
product_alias.alias='Pringles原始的'左外连接
从产品图像中选择DISTINCT*作为prdim左外连接
产品\图像\在prdimvt.product\图像\ id=prdim.id上投票为prdimvt
作为productimages.product_id=prd.id上的productimages,其中prd.id=1
查询中有3个表,其中可能至少有2个表具有相同的列id。在select中使用*将选择这三个表中的所有列,并多次选择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
如果您不想一个接一个地列出它们,我怀疑这与子选择联接有关。我认为这个查询可以在没有子选择的情况下编写。我需要子查询,因为我必须在后面加上限制,并且因为我想在@datasageDistinct内的选择中使用distinct只会减少重复,在这些表中是否确实存在重复项?是的,在每个选择中都可以重复@datasage,我必须将name_table.*放入其中,现在没有返回错误。谢谢