如何忽略MySQL查询中JOIN表的结果

时间:2012-04-01 20:06:44

标签: php mysql sql database

我有以下查询:

$img_sub_qry = "SELECT * FROM images 
JOIN imagsub ON images.image_id = imagsub.image_id
WHERE images.image_id IN ($thelist)";

问题是这个查询填充了一个下拉框,我得到了双倍的结果。我只想要images表中的结果,但我需要JOIN才能获取只存在于imagsub表中的列。从FirePHP我可以看到图像表中的结果通过正常然后它循环返回并从imagsub拉出相同的结果,我不需要这些结果。我试过“SELECT DISTINCT”无济于事。有人可以帮助我吗?我是PHP的新手,这是我第一次尝试使用IN。

2 个答案:

答案 0 :(得分:3)

我认为你选择了与众不同的正确轨道;只需指定所需的列。如果您正在填充下拉列表,请执行以下操作:

$img_sub_qry = "SELECT DISTINCT [colname] as ddlvalue, [colname] as ddltext
    FROM images 
    JOIN imagsub ON images.image_id = imagsub.image_id
    WHERE images.image_id IN ($thelist)";

对于您正在尝试的查询,由于ID列,查询中的每一行都可能是不同的。

答案 1 :(得分:0)

您应该明确指定您感兴趣的字段。

SELECT i.* 
FROM images i
JOIN imagsub is ON i.image_id = is.image_id
WHERE i.image_id IN ($thelist)