【问题标题】:MySQL Inner join with Not equal operatorMySQL内连接不等于运算符
【发布时间】:2011-11-04 20:27:17
【问题描述】:

我在 Sale 中有很多行,在 SalesProcessed 中有一行。

SELECT * FROM Sale 
    INNER JOIN SalesProcessed
    ON Sale.id<>SalesProcessed.id
    LIMIT 0,30

此代码返回 id 在 SalesProcessed 中的同一行。为什么?

实际上,我需要 SalesProcessed 中不存在 ID 的销售行。

【问题讨论】:

    标签: php mysql join


    【解决方案1】:
    SELECT *
        FROM Sale
            LEFT JOIN SalesProcessed
                ON Sale.id = SalesProcessed.id
        WHERE SalesProcessed.id IS NULL
        LIMIT 0,30
    

    【讨论】:

      【解决方案2】:

      另一种方法

      SELECT * FROM Sale 
      where Sale.id not in (select SalesProcessed.id from SalesProcessed)
      LIMIT 0,30
      
      
      
      SELECT * FROM Sale 
      where NOT EXISTS (
       select SalesProcessed.id from SalesProcessed where Sale.id=SalesProcessed.id)
      LIMIT 0,30
      

      您应该使用说明检查每个查询以获得最佳结果

      【讨论】:

        【解决方案3】:

        如果你想要不存在的行,那是错误的查询:

        SELECT *
        FROM Sale
        LEFT JOIN SalesProcessed
        ON Sale.ID = SalesProcessed.id
        WHERE SalesProcessed.id IS NULL;
        

        【讨论】:

          猜你喜欢
          • 2013-03-15
          • 1970-01-01
          • 2011-05-04
          • 2012-09-03
          • 2016-07-29
          • 2014-03-22
          • 2012-06-26
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多