我有以下查询:
$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。
答案 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)