gpt4 book ai didi

SQL Server 查询语法

转载 作者:行者123 更新时间:2023-11-30 23:56:31 25 4
gpt4 key购买 nike

我需要执行这样的查询:

SELECT *, 
(SELECT Table1.Column
FROM Table1
INNER JOIN Table2 ON Table1.Table2Id = Table2.Id
) as tmp
FROM Table2 WHERE tmp = 1

我知道我可以采取一种解决方法,但我想知道这种语法是否可行(我认为)在 Mysql 中。

最佳答案

您发布的查询在 sql server 上不起作用,因为您的 select 子句中的子查询可能返回多行。我不知道 MySQL 将如何处理它,但从我正在阅读的内容来看,如果子查询返回任何重复项,MySQL 也会产生错误。我知道 SQL Server 甚至不会编译它。

不同之处在于 MySQL 至少会尝试运行查询,如果您非常幸运(Table2Id 在 Table1 中是唯一的),它将成功。更有可能的是会返回一个错误。 SQL Server 根本不会尝试运行它。

这是一个应该在任一系统上运行的查询,如果 Table2Id 在 Table1 中不是唯一的,则不会导致错误。在这种情况下,它返回“重复”行,其中唯一的区别是 Table1.Column 值的来源:

SELECT  Table2.*, Table1.Column AS tmp
FROM Table1
INNER JOIN Table2 ON Table1.Table2Id = Table2.Id
WHERE Table1.Column = 1

也许如果您分享了您试图完成的目标,我们可以帮助您编写一个查询来完成它。

关于SQL Server 查询语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/915533/

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