gpt4 book ai didi

android - 选择(外键)表中没有对应行的行

转载 作者:行者123 更新时间:2023-11-29 21:10:01 25 4
gpt4 key购买 nike

我有两个表 Say Customers 和 Orders,主键是 Customer.CustomerID,外键是 Order.CustomerID 我想选择所有没有在 Android Sqlite 中下订单的客户这是我的查询

select * from Customer where not exists (select * from Customer  inner join Order on Customer.CustomerID = Order.CustomserID )

但它不起作用并返回 0 行。

最佳答案

您的子查询不是 correlated subquery ,即与外部查询没有关系。(内部 Customer 表完全独立于外部表。)只要数据库中存在任何 记录,EXISTS 子句就对外部Customer 表中的 记录为真。

你想检查一个特定的 Customer 记录是否有匹配的订单:

SELECT *
FROM Customer
WHERE NOT EXISTS (SELECT 1
FROM Order
WHERE CustomerID = Customer.CustomerID)

或者,执行 outer join两个表中的一个,并检查哪些客户没有得到匹配的订单:

SELECT Customer.*
FROM Customer
LEFT JOIN Order USING (CustomerID)
WHERE Order.OrderID IS NULL

或者,只需获取不在订单表中的所有客户:

SELECT *
FROM Customer
WHERE CustomerID NOT IN (SELECT CustomerID
FROM Order)

关于android - 选择(外键)表中没有对应行的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23232027/

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