我有一个数据库的信息,从小精灵的游戏。 其中的一个表中包含的行动,可以通过每个小精灵. 我怎么可以选择从这个表,其中一个小宠物可以学习的两个移动?
我目前的查询是 SELECT * FROM 'learned-moves' WHERE 'Version Group'=? AND ('Move'=? OR 'Move'=?);
但这一选择的所有行包含移动。 我怎么可以只返回的那些行,如果他们两个的比赛?
考虑一个 INNER JOIN
在本身或自加入:
SELECT l1.Pokemon, l1.'Move' AS 'Move1', l2.'Move' AS 'Move2'
FROM 'learned-moves' l1
INNER JOIN 'learned-moves' l2
ON l2.Pokemon = l1.Pokemon
AND l2.'Version Group' = l1.'Version Group'
AND l1.'Version Group' = ?
AND l1.'Move' = ?
AND l2.'Move' = ?