gpt4 book ai didi

mysql - 如何合并这两个 MySQL Select 查询?

转载 作者:行者123 更新时间:2023-11-29 04:43:59 27 4
gpt4 key购买 nike

为了提高性能,我想将 2 个 MySQL 查询合并为 2 个。基本上我希望查询在 2 个表中搜索元素。如果在一个中找不到,则应在另一个中搜索。这就是我创建 2 个查询的原因,但我确信它在日志运行中会比 1 个查询慢。

我有以下 2 个查询:

SELECT a_id FROM table1 WHERE name = 'George'
SELECT b_id FROM table2 WHERE name = 'George'

如何创建一个查询?它应该只在找到匹配项的地方返回 1 个 ID。

最佳答案

您可以使用 UNION ALL 查询:

SELECT a_id FROM table1 WHERE name = 'George'
UNION ALL
SELECT b_id FROM table2
WHERE
name = 'George'
AND NOT EXISTS (SELECT a_id FROM table1 WHERE name = 'George')

或者这个:

SELECT a_id, 1 as t FROM table1 WHERE name = 'George'
UNION ALL
SELECT b_id, 2 as t FROM table2 WHERE name = 'George'
ORDER BY t
LIMIT 1

但我认为这不会比运行两个单独的查询更快。

关于mysql - 如何合并这两个 MySQL Select 查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22560818/

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