首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mysql查询不起作用,但我猜不出原因。

Mysql查询不起作用,但我猜不出原因。
EN

Stack Overflow用户
提问于 2014-09-12 09:47:13
回答 2查看 64关注 0票数 0

你好,朋友,我有两张桌子,一张是customer,另一张是new_party_estimate。但是下面的查询不起作用。请帮我解决这个问题。

代码语言:javascript
复制
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紧随其后,记录很少。

代码语言:javascript
复制
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紧随其后,记录很少。

代码语言:javascript
复制
    customer
    LOVELY DRESSES
    ASHIRWAD GARMENTS
    AKASH DEEP
    ABDUL LATIF READYMADE SALE
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-09-12 11:00:04

在您的查询中没有明显的问题,尽管in可能效率很低(使用EXISTS会更有效)。

另一种选择是左加入,但只在没有匹配的情况下带回记录:-

代码语言:javascript
复制
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 
票数 0
EN

Stack Overflow用户

发布于 2014-10-06 09:40:41

我知道这个问题的答案,但我不知道为什么会这样。

在运行此查询时,如果new_party_estimate表中有所有值都等于null的行,则此查询将无法工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25805393

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档