gpt4 book ai didi

MYSQL一对多关系查询从 'many'表返回一行

转载 作者:行者123 更新时间:2023-11-29 10:25:27 24 4
gpt4 key购买 nike

我有 2 个 mysql 表,即“属性”和“图像”。

          Properties
+------------+---------------+
| propertyId | propertyTitle |
+------------+---------------+
| 1 | 1 acre land |
| 2 | 2 acre land |
| 3 | 3 acre land |
+------------+---------------+

Images
+---------+---------------+---------------+
| imageId | image | propertyId |
+---------+---------------+---------------+
| 1 | land.jpeg | 1 |
| 2 | landview.jpg | 1 |
| 3 | viewland.jpeg | 2 |
+---------+---------------+---------------+

它们具有一对多关系,并且图像表具有属性表的外键。我想执行一个查询,选择一个属性,然后选择该属性的单个图像。我正在尝试使用的查询是

   SELECT * FROM properties p
JOIN (SELECT * FROM images im LIMIT 1)
ON im.propertyId = p.propertyId;

但它不起作用。它也不会返回错误。

最佳答案

如果您想返回所有行,您的查询将变为:

SELECT * FROM properties p
JOIN images im
ON im.propertyId = p.propertyId;

使用LIMIT 1,您仅从图像表中返回一行,因此您的行数受到限制

编辑

评论后:

通过这种方式,您将获得链接到您的资源的第一张图片。

SELECT p.*,
(SELECT im.mage
FROM images im
WHERE im.propertyId = p.propertyId
AND NOT EXISTS (
SELECT 'NEXT'
FROM images im2
WHERE im.propertyId = im2.propertyId
AND im2.imageId > im.imageId)
)
FROM properties p;

关于MYSQL一对多关系查询从 'many'表返回一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48380179/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com