我正在尝试将g.house_ID选为Distinct,以便下面的查询返回的值将基于g.house_id而唯一。
因此,如果房屋ID有3个值的记录1.它只返回房屋ID的第1个条目,而不是3行。
SELECT r.*, g.*
FROM house r, pic_gallery g
WHERE r.house_id = 1 AND r.house_id = g.house_id
答案 0 :(得分:0)
如果您想要从图库中显示单张图片(获取单个列),则可以使用简单的子选项来帮助您
SELECT
r.*
, (SELECT TOP(1) PrimaryImage
FROM pic_gallery g
WHERE r.house_id = 1 AND r.house_id = g.house_id
)
FROM house r
在您的情况下,您似乎想要加入整个gallery表的行数据如果您只想从子表中选择一行,则需要以某种方式对其进行排序,以便数据库知道哪一行是正确的之一。
SELECT R.*
FROM house R
OUTER APPLY (
SELECT TOP 1 G.ID,G.Image,G.Owner,G.HouseID
FROM gallery G
WHERE G.HouseID = R.HouseID
ORDER BY G.CreatedDate
) O
此外,分区可能对阅读有用。
就个人而言,我会将其中一个图库行标记为主要行,并使用这样的简单连接。
SELECT * From house R
LEFT OUTER JOIN gallery G ON R.HouseID = G.HouseID
WHERE G.PrimaryRow = 1
答案 1 :(得分:0)
尝试使用不同的左连接。
SELECT DISTINCT g.house_id, r.*, g.*
FROM pic_gallery g
LEFT JOIN house r,
ON r.house_id = g.house_id
WHERE r.house_id = 1