查询两个表,其中一个表返回重复项。需要限制一个,但不限制另一个

时间:2012-02-08 05:44:07

标签: php mysql

我在查询两张桌子。表格page包含信息,page_images包含图片。在page_images中,我存储了所有图像元数据和页面url_title,因此它可以与表page相关联。当我查询信息和图像时,我得到了page_images的重复结果,因为每个页面都有多个图像。在查询page_imagespage时如何限制page_images的1?

这是缩短的查询:

SELECT page.url_title,
page.short_title,
page_images.image_loc -- This returns duplicate results
FROM page, page_images
WHERE page.language = '$lang' AND
page.category = '$category' AND
page.url_title != '$page' AND
page.url_title = page_images.page_title
LIMIT 20

2 个答案:

答案 0 :(得分:-1)

如果您只想提取一个结果,请使用LIMIT 1

答案 1 :(得分:-1)

看起来你错过了INNER JOIN。 尝试:

SELECT page.url_title,
page.short_title,
page_images.image_loc -- This returns duplicate results
FROM page inner join page_images
  on page.id = page_images.page_id
WHERE page.language = '$lang' AND
page.category = '$category'

其中page.id是页表的主键,page.page_id是page_images表的外键。