我有一个查询,其中column1和column2在数组中不应该有值。
该数组是从具有2个子查询和并集的单个值(用户ID)创建的。

到目前为止,它看起来像这样:

WHERE (`user`, `viewed`) NOT IN (
    SELECT `id` FROM `users` WHERE `role` = 3 UNION
    SELECT `user_id` FROM `groups_memberships` WHERE `group_id` = 3
)


这样,由于预期每个项目2个值,它会引发基数错误。
我知道可以通过分离这2列(userviewed)来完成,但是这将需要2个额外的子查询,这可能不是最佳解决方案。

还有其他方法可以过滤掉列user和column viewed不在用户ID数组中的结果吗?

谢谢

最佳答案

您可以在下面尝试-

WHERE (`user`, `viewed`) NOT IN (
    SELECT `id`,null as userid FROM `users` WHERE `role` = 3 union
    SELECT null,`user_id` FROM `groups_memberships` WHERE `group_id` = 3
)

关于mysql - MySQL 2列NOT IN(一个项目数组),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54395816/

10-14 12:56
查看更多