2012-08-08 58 views
0

什么会导致连接表的查询显示重复数据。我试过分组,它只是分组一列,并显示其他列相同的数据,使它无用,明显不会工作。这是我正在运行的查询。我已经提取了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

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

这里是该查询将被添加的页面的屏幕截图。

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

enter image description here

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

tbl_inventory及其数量计数的目的是,如果某个特定颜色的数量为0,那么该颜色及其关联的十六进制在下拉框或框中将不可见。

+0

很难说没有更多的信息,但是即兴的猜测是德外连接tbl_Inventory添加pov.products_options_values_id和inv.color_id的选择列表,看看我是对的。 – 2012-08-08 17:33:38

回答

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' 
+0

我实际上需要这些id值打印 – 2012-08-08 19:34:41

+0

@SarmenB。,我猜我不知道你在问什么。也许如果你编辑你的问题来包含你的预期结果,我可以进一步提供帮助。 – 2012-08-08 19:41:09

+0

我编辑了这个让我知道,如果它需要更多的信息:) – 2012-08-08 20:25:53