php - 返回用户没有的 ID

标签 php mysql

我有两个数据库表。一个是egl_achievement,另一个是egl_achievement_member。一个只持有成就,另一个持有有成就的成员。我正在尝试编写一个查询,该查询将返回成员没有的所有成就。我以为我可以使用 MINUS,但 mysql 不支持。

SELECT egl_achievement.id as id FROM egl_achievement LEFT JOIN egl_achievement_member ON egl_achievement.id = egl_achievement_member.egl_achievement_id WHERE egl_achievement_member.member_id =57;

这显然会返回成员 57 的 ID,但我怎样才能得到相反的 ID?

最佳答案

您可以使用包含所有成就的子选择,然后仅列出未包含的成就:

SELECT egl_achievement.id as id
FROM egl_achievement
WHERE egl_achievement.id NOT IN(
    SELECT egl_achievement_member.egl_achievement_id
    FROM egl_achievement_member
    WHERE egl_achievement_member.member_id =57);

关于php - 返回用户没有的 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24003804/

相关文章:

php - 如何像缩略图画廊一样嵌入 youtube channel ?

php - 获取第二个表的计数以及 id

sql - 使用 LEFT JOIN 重写 mysql 子查询

MySQL 下划线与 LIKE 运算符

php - 经常导致数据丢失的mysql错误

php - 在表单中创建黑名单过滤器以避免某些单词

php - 使用 PHP 查找 Windows 32 或 64 位

php - 从表中检索到的条目是否重复? PHP

php - Laravel 4.2 验证规则 - 当前密码必须匹配数据库值

php - MySql AES_DECRYPT 和 AES_ENCRYPT key 在 PHP 中不起作用