gpt4 book ai didi

mysql - 将 2 个 mysql 查询优化为 1 个

转载 作者:行者123 更新时间:2023-11-29 15:09:59 24 4
gpt4 key购买 nike

用户有宠物,宠物可能有图片一张图片可以设置为主图片(mainpic=0或mainpic=1)

我需要从pets表中获取所有宠物数据,我还需要图片id,其中mainpic=1或第一张图片,如果图片表中没有图片则为null。我需要获取宠物数据,即使它根本没有图片。

目前我使用 2 个查询来完成此操作:SELECT * FROM pets WHERE pets.userId='$userId' ORDER BY pets.created ASC LIMIT 5...对于每个结果: SELECT id FROM pictures WHERE petId = '$petId' ORDER BY mainpic DESC LIMIT 1

我需要在一个查询中进行此优化。

谢谢,哈姆雷特

最佳答案

使用内连接省略不匹配的记录

select * 
from pets inner join pictures
on pets.id = petId and mainpic=1
where userId=?
order by pets.created ASC limit 5

如果您只想在图片相关字段中为空,但想要宠物信息(您的问题有点不清楚),则使用左连接

select * 
from pets left join pictures
on pets.id = petId and mainpic=1
where userId=?
order by pets.created ASC limit 5

关于mysql - 将 2 个 mysql 查询优化为 1 个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1017516/

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