Hello Friends我有两个表,一个是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
答案 0 :(得分:0)
在查询中没有明显的东西,尽管IN效率低(使用EXISTS效率更高)。
另一种选择是做LEFT JOIN但只返回没有匹配的记录: -
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
答案 1 :(得分:0)
我得到了这个问题的答案,但我不确定为什么会这样。
在运行此查询时,如果new_party_estimate表中的所有值都等于null,则此查询不起作用。