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


Querying two tables where one returns duplicates. Need to limit one, but not the other

我正在查询两个表。表CCD_ 1保存信息并且CCD_。在page_images中,我存储所有图像元数据和页面url_title,以便它可以与表page相关联。当我查询信息和图像时,我会得到page_images的重复结果,因为每页都有多个图像。在查询pagepage_images时,如何为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

如果只想提取一个结果,请使用LIMIT 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表的外键。