三联接查询显示重复的行

时间:2012-08-08 17:16:21

标签: mysql

查询连接表以显示重复数据的原因。我尝试过group by,它只是对一列进行分组,并为其他列显示相同的数据,使其无用且不同。这是我正在运行的查询。我已经提取了运行此查询的3个表,它位于此处:http://pastie.org/4413153 这是查询:

select
pov.products_options_values_id,
pov.products_options_values_name,
pov.color_code,
inv.model,
inv.quantity,
img.id
from products_options_values as pov

left join tbl_inventory as inv
on pov.products_options_values_id = inv.color_id

inner join products_images img
on img.products_id = inv.products_id
where img.products_id = '301'

这是输出的屏幕截图。 (注意3条记录每次打印3次。) enter image description here

我期望从这个查询得到的结果是:(截图) enter image description here

这是将添加此查询的页面的屏幕截图。

  

抱歉屏幕截图不符合我要做的但你会得到的   图片。

enter image description here

颜色名称将在选择下拉列表中使用,相关的颜色十六进制值将在彩色框中使用。这些框的目的是当你将鼠标悬停在它上面时,左边的图像将变为我提到的图像id值在查询中需要的值。有一个ajax调用,它抓取图像ID值并在左侧显示其相关图像。

tbl_inventory及其数量计数的目的是,如果特定颜色的数量为0,则颜色及其相关的十六进制将不会在下拉列表或框中显示。

1 个答案:

答案 0 :(得分:0)

实际上,没有重复。 3个“重复”记录各自具有不同的id值。 (65,66,67)使每一个都独一无二。如果从SELECT子句中删除img.id并添加DISTINCT,它将删除“重复”记录。

select distinct
pov.products_options_values_id,
pov.products_options_values_name,
pov.color_code,
inv.model,
inv.quantity
from products_options_values as pov
   . . .
where img.products_id = '301'