MySQL内连接与不等于运算符

Tig*_*yan 4 php mysql join

Sale中有很多行,SalesProcessed中有一行.

SELECT * FROM Sale 
    INNER JOIN SalesProcessed
    ON Sale.id<>SalesProcessed.id
    LIMIT 0,30
Run Code Online (Sandbox Code Playgroud)

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

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

Joe*_*lli 10

SELECT *
    FROM Sale
        LEFT JOIN SalesProcessed
            ON Sale.id = SalesProcessed.id
    WHERE SalesProcessed.id IS NULL
    LIMIT 0,30
Run Code Online (Sandbox Code Playgroud)


And*_*kov 5

另一种方法

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
Run Code Online (Sandbox Code Playgroud)

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


Mar*_*c B 5

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

SELECT *
FROM Sale
LEFT JOIN SalesProcessed
ON Sale.ID = SalesProcessed.id
WHERE SalesProcessed.id IS NULL;
Run Code Online (Sandbox Code Playgroud)