【发布时间】:2015-11-11 12:47:32
【问题描述】:
我需要选择与另一个主数据库连接的数据库的第一行。 主数据库收集有关狗的信息,它们的种族、大小、姓名…… 加入的数据库链接到第一个并提供狗的图像。 每只狗都有不同的图像,不止一个。 在狗的列表页面中,我需要为每只狗显示所有狗的详细信息,并且只显示加入数据库的第一个图像,因为它是个人资料图像。
所以这里是两个数据库的结构:
//dog_pages database:
id
--
slug
--
name
--
race
--
size
--
description
--
created
--
updated
和:
//dog_images database:
id
--
dog_page_id //this is for the join
--
content
--
img_title
--
img_url
--
img_ftp_path
--
thumb_ftp_path
--
thumb_delete_path
我使用此代码生成查询:
SELECT dog_pages.id, dog_pages.slug, dog_pages.name, dog_pages.race, dog_pages.size, dog_pages.description, dog_pages.created, dog_pages.updated, dog_images.id, dog_images.dog_page_id, dog_images.img_url, dog_images.thumb_ftp_path, dog_images.content AS image_content
FROM dog_pages
LEFT JOIN dog_images
ON dog_pages.id = (
SELECT dog_images.dog_page_id
FROM dog_images
WHERE dog_pages.id = dog_images.dog_page_id
LIMIT 1
)
不幸的是,这不起作用,结果是每只狗都有多个图像。我只需要一张,在 dog_images 的第一行。
【问题讨论】: