选择行不在多列mysql中

Azi*_*ima 4 mysql sql where-clause where-in

我有以下结果集:

request_id  |  p_id
66          |  10
66          |  10
66          |  10
66          |  22
66          |  22
76          |  23
76          |  24
Run Code Online (Sandbox Code Playgroud)

我试图选择excludes记录某些组合值的行:

request_id   |   product_id
66           |   10
76           |   23
Run Code Online (Sandbox Code Playgroud)

因此,输出结果集应仅包含以下记录:

66          |  22
66          |  22
76          |  24
Run Code Online (Sandbox Code Playgroud)

我试着做:

select * from `table` 
where request_id NOT IN (66, 76) AND product_id NOT IN (10, 22)
Run Code Online (Sandbox Code Playgroud)

但这给了我空的结果集。

如何仅排除这两个值的组合?

Fah*_*hmi 5

您可以在下面尝试-

演示

select * from `table` 
where (request_id, p_id) NOT IN ((66, 10),(76,23)) 
Run Code Online (Sandbox Code Playgroud)

输出:

request_id  p_id
66          22
66          22
76          24
Run Code Online (Sandbox Code Playgroud)