gpt4 book ai didi

sql - mysql多where和inner join查询组合

转载 作者:太空宇宙 更新时间:2023-11-03 11:18:57 25 4
gpt4 key购买 nike

对于如何同时运行两个 mysql 查询(返回一个要排序的结果集等),我有点迷茫。

我了解如何执行多个 JOINS,但需要结合以下内容,这不仅仅是一个多重连接 - 它会包括多个 where 等。

第一个查询

     sql = "SELECT s.id, s.song_name
FROM `songs` as s
INNER JOIN `artists` as a ON s.artist_id = a.id
WHERE ((`a`.id = #{search}))"

第二个查询

   sql = "SELECT s.id, s.song_name
FROM `songs` as s
INNER JOIN `similarments` as si ON s.artist_id = si.artist_id
WHERE ((`si`.similar_id = #{search}))"

然后同时运行两个查询,这样我就可以订购它们等等。或者将它们合并为一个大查询(也许在某处放置一个 OR)?

谢谢!

最佳答案

运行两个查询并合并结果的简单方法是使用 UNION (或者 UNION ALL 如果您不想删除重复项)。在您的情况下,它看起来像这样:

(
SELECT s.id, s.song_name
FROM `songs` as s
INNER JOIN `artists` as a ON s.artist_id = a.id
WHERE ((`a`.id = #{search}))
)
UNION
(
SELECT s.id, s.song_name
FROM `songs` as s
INNER JOIN `similarments` as si ON s.artist_id = si.artist_id
WHERE ((`si`.similar_id = #{search}))
)
ORDER BY ....

关于sql - mysql多where和inner join查询组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2814832/

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