我想提出一个游戏目录,但我也想知道游戏是否已经在 SPECIFIC 成员(当前会员中)会员列表中。此信息存储在名为gameslist的表中,该表是一个连接成员和游戏的木匠表gameslists(id,memberid,gameid,rank)
SELECT DISTINCT *, gameslists.memberid
FROM games
INNER JOIN platforms ON games.platformid = platforms.id
INNER JOIN titles ON games.titleid = titles.id
INNER JOIN genres ON games.genreid = genres.id
LEFT OUTER JOIN gameslists ON games.id = gameslists.gameid
WHERE platforms.id = 1
ORDER BY games.releasedate DESC
LIMIT 8
问题如果游戏在两个成员的列表中,它会显示两次,如果它在 三个列表,显示三次等...结果是我可以判断游戏是否在当前用户的列表中,但目录显示通过两次显示相同的游戏而搞砸了(因为它在游戏列表中被发现两次)
http://i82.photobucket.com/albums/j277/melhusseini/Capture2.png
我该如何解决这个问题?
编辑:查询的主要显示标准应由目录参数(流派,版本,日期等)决定,如果游戏已经在会员列表中,则不是......目的是部分是根据该状态显示添加/删除按钮
答案 0 :(得分:2)
在您的外连接条件中,输入感兴趣的特定成员的memberid。
LEFT OUTER JOIN gameslists ON
games.id = gameslists.gameid and gameslists.memberid = 1
然后,您可以测试gameslists.memberid
是否为空,然后游戏不在其列表中。
e.g。
case when gameslists.memberid is null then 0 else 1 end as InMembersList