0

是什么导致联接表的查询显示重复数据。我已经尝试过 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 次。) 在此处输入图像描述

我期望从这个查询中得到的结果是:(截图) 在此处输入图像描述

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

抱歉,屏幕截图与我想要做的不匹配,但你会得到图片。

在此处输入图像描述

颜色名称将在选择下拉列表中使用,相关的颜色十六进制值将在彩色框中使用。这些框的用途是当您将鼠标悬停在左侧图像上时,左侧的图像将更改为我提到的需要在查询中的图像 ID 值。有一个 ajax 调用可以获取该图像 id 值并在左侧显示其关联的图像。

tbl_inventory 及其数量计数的目的是,如果特定颜色的数量为 0,则该颜色及其关联的十六进制将不会在下拉列表或框上可见。

4

1 回答 1

0

实际上,没有重复。3 个“重复”记录每个都有不同的id值。(65,66,67) 这使得每一个都是独一无二的。如果img.id从 SELECT 子句中删除并添加 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'
于 2012-08-08T18:47:28.560 回答