gpt4 book ai didi

mysql - 为什么 MySQL IN() 函数与未知字段一起工作

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

有两个表:

Customers 字段为 CustomerId 和 AnotherId

Orders 字段为 OrderId 和 CustomerId

即使 Orders 表中不存在 AnotherId,下面的查询怎么可能有效?

SELECT * 
FROM Customers
WHERE (CustomerID, AnotherID) IN (SELECT CustomerID, AnotherID FROM Orders);

最佳答案

看来 MySQL 正在将子查询中的 AnotherId 列引用解释为属于 Customers 表。

要确认这一点,请考虑以下不起作用的查询版本:

SELECT * 
FROM Customers
WHERE (CustomerID, AnotherID) IN (SELECT o.CustomerID, o.AnotherID FROM Orders o);

在这种情况下,很明显子查询仅引用 Orders 表中的列,并且由于该表没有 AnotherId 列,查询失败.这是一个演示,显示此版本的查询失败:

Demo

关于mysql - 为什么 MySQL IN() 函数与未知字段一起工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56479974/

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