我有两个数据库表。一个是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/