gpt4 book ai didi

mysql - 将 mysql 子查询存储在变量中

转载 作者:可可西里 更新时间:2023-11-01 07:02:55 30 4
gpt4 key购买 nike

是否有可能以某种方式存储 mysql 子查询,如果它将再次用作子查询?据推测,这会产生更清晰的代码并节省解析开销。

例如在下面的外连接

SELECT * FROM t1
LEFT JOIN (SELECT * FROM t2 WHERE t2.foo=='bar') ON t1.id = t2.id
UNION
SELECT * FROM t1
RIGHT JOIN (SELECT * FROM t2 WHERE t2.foo=='bar') ON t1.id = t2.id

最好不要重复 (SELECT * FROM t2 WHERE t2.foo=='bar')

最佳答案

不,你不能。如果 MySQL 有 CTE(公用表表达式),你可以使用这个:

WITH tmp AS
(SELECT * FROM t2 WHERE t2.foo = 'bar')
SELECT * FROM t1
LEFT JOIN tmp ON t1.id = tmp.id
UNION
SELECT * FROM t1
RIGHT JOIN tmp ON t1.id = tmp.id

如果 MySQL 有FULL JOIN(唉,它也没有!),你可以使用这个:

SELECT * FROM t1
FULL JOIN (SELECT * FROM t2 WHERE t2.foo = 'bar') tmp
ON t1.id = tmp.id

关于mysql - 将 mysql 子查询存储在变量中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9785435/

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