我尝试使用INTERSECT子句进行查询,但PHPmyAdmin无法识别INTERSECT,这是错误:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'INTERSECT (SELECT users.name, users.id, users.email FROM users ' at line 10
我无法理解,我也没有发现这样的问题。那么有什么解决方案吗感谢
SELECT users.name, users.id, users.email
FROM users
WHERE users.id NOT IN (
SELECT users.id
FROM users
JOIN clubs_messages ON users.id = clubs_messages.id_user
GROUP BY clubs_messages.id_user)
INTERSECT
SELECT users.name, users.id, users.email
FROM users
WHERE users.id NOT IN (
SELECT users.id
FROM users
JOIN sessions_messages ON users.id = sessions_messages.id_user
GROUP BY sessions_messages.id_user)
答案 0 :(得分:0)
intersect
不是mysql函数。这与phpmyadmin
没什么关系,因为它返回的错误在这种情况下是正确的。
快速谷歌会帮助您重写代码:
SELECT member_id,name FROM a INTERSECT
SELECT member_id,名称FROM b可以简单地重写为
选择a.member_id,a.name
从内部加入b
使用(member_id,name)
答案 1 :(得分:0)
INTERSECT是标准SQL的一部分,但MySQL不支持该操作。 SQL的许多部分对于供应商来说是可选的。没有SQL的实现支持该语言的每个部分。
过去曾要求支持INTERSECT:https://bugs.mysql.com/bug.php?id=31336
您可以登录bugs.mysql.com并点击该问题的“影响我”按钮,他们可以将其用作该功能需求的指示。