你好,朋友,我有两张桌子,一张是customer,另一张是new_party_estimate。但是下面的查询不起作用。请帮我解决这个问题。
SELECT
acc_name,
customer_id
FROM
customers
WHERE STATUS = 'e'
AND acc_name NOT IN (
SELECT DISTINCT
customer
FROM
new_party_estimate
WHERE closed = '0'
AND (
customer_alt = ''
OR customer_alt IS NULL
)
)
ORDER BY acc_name 我正在单独运行子查询,它给出了输出。但是,当我一次运行完整的查询时,mysql会显示空结果。请告诉我问题出在哪里!
表Customers紧随其后,记录很少。
acc_name customer_id
CAMPUS FASHION_khyati CAM-11
PAPPU SUIT HOUSE PAPAAR5
R K FASHION R KAAR6
SELECTION MENS WEAR SELAAR7表new_party_estimate紧随其后,记录很少。
customer
LOVELY DRESSES
ASHIRWAD GARMENTS
AKASH DEEP
ABDUL LATIF READYMADE SALE发布于 2014-09-12 11:00:04
在您的查询中没有明显的问题,尽管in可能效率很低(使用EXISTS会更有效)。
另一种选择是左加入,但只在没有匹配的情况下带回记录:-
SELECT acc_name,
customer_id
FROM customers
LEFT OUTER JOIN new_party_estimate
ON customers.acc_name = new_party_estimate.customer
AND closed = '0'
AND (customer_alt = ''
OR customer_alt IS NULL)
WHERE new_party_estimate.customer IS NULL
AND STATUS = 'e'
ORDER BY acc_name 发布于 2014-10-06 09:40:41
我知道这个问题的答案,但我不知道为什么会这样。
在运行此查询时,如果new_party_estimate表中有所有值都等于null的行,则此查询将无法工作。
https://stackoverflow.com/questions/25805393
复制相似问题