我有一个查询
SELECT *
FROM `user`
WHERE NOT
EXISTS (
SELECT *
FROM roleInEvent
WHERE user.userId = roleInEvent.userId
AND eventId = 1
)
AND user.disciplineId =5
每当我在我的mysql控制台中运行它时,它返回1行。这是对的。 但是在我的php脚本中它返回零行,而它完全是相同的查询。
我的php脚本如下所示:
$db = DatabaseHelper::get();
$st = $db->prepare('SELECT *
FROM `user`
WHERE NOT
EXISTS (
SELECT *
FROM roleInEvent
WHERE user.userId = roleInEvent.userId
AND eventId = 1
)
AND user.disciplineId =5');
$st->execute();
if ($st->errorCode() !== \PDO::ERR_NONE) {
return null;
}
有人知道这里有什么问题吗?
答案 0 :(得分:0)
解决方案很简单。 我忘了将结果返回给我的javascript
答案 1 :(得分:-1)
你也可以使用IN
和NOT
一样使用
SELECT * FROM user WHERE id_user NOT IN ( SELECT other_data FROM roleInEvent WHERE user.userId = roleInEvent.userId AND eventId = 1 ) AND user.disciplineId =5
如果查询:SELECT other_data FROM roleInEvent WHERE user.userId = roleInEvent.userId AND eventId = 1
为您带来了某些内容,则user
表中不必存在此结果。
其他例子是:
用户表:
---------------------------
id_user | name_user
1 fernando
2 urban
在其他表中我们有块用户:
阻止用户:
id_user_block | id_user | name_user
1 1 fernando
2 2 john lennon
所以,我想只向我提供阻止用户表中不存在的用户:
查询将是:
SELECT * FROM Users WHERE id_user NOT IN ( SELECT id_user FROM blocked_users )
所以,我们得到的最后一个查询:
id_user | name_user
2 john lennon
问候!