gpt4 book ai didi

c# - MySql查询: get all customers that has their ID in both Customer and Customer_x_Billing table

转载 作者:行者123 更新时间:2023-11-29 14:51:38 28 4
gpt4 key购买 nike

我正在使用 C# 控制台应用程序从 MySql 数据库获取一些数据,但在正确查询时遇到一些问题

现在的情况:

SELECT * FROM Customer
WHERE EXISTS ( SELECT * FROM Customer_x_Billing c WHERE Customer.`customer id` = c.customer_id)
AND 2011 -04 -03 < ( SELECT last_changed FROM Customer_x_Billing c WHERE Customer.`customer id` = c.customer_id )
ORDER BY Customer.`customer id`

我该如何改进这个?我想要获取在 Customer 和 Customer_x_Billing 表中都有其 ID 的所有客户,并且 Customer_x_Billing 中的 last_changed 日期大于参数(在本例中为 2011-04-03)。如果我将日期设置为 2012-04-03,它不应返回任何行,但会返回与第一个条件匹配的所有记录(两者都存在)。

最佳答案

尝试下面的一个

SELECT * FROM Customer
INNER JOIN
Customer_x_Billing ON Customer.`customer id` = Customer.customer_id
WHERE last_changed > 2011 -04 -03
ORDER BY Customer.`customer id`

您查询的问题是您扫描了 Customer_x_Billing 表两次,这是不必要的,最好进行一次内部联接,这将通过编写 where 子句满足您第一个条件存在的条件和第二个条件的满足。

关于c# - MySql查询: get all customers that has their ID in both Customer and Customer_x_Billing table,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5617968/

28 4 0