我有一个查询,其中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列(
user
,viewed
)来完成,但是这将需要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/