我有两张桌子
games
idGame guidUser
-----------------
12 2
13 3
wordstyped
idGame guidUser word
-------------------------
12 2 honey
12 2 apples
13 3 bread
13 3 water
14 4 foo
15 5 bar
16 2 bartender
12 4 bar
我想选择游戏中包含情侣(idGame,guidUser)的单词类型的记录。
如果要搜索的值只有我可以做到的
SELECT * FROM wordstyped WHERE guidUser IN (SELECT guidUser from games)
但是如果要比较的值是几个值怎么办?
对于有效的查询,在此示例中,仅会选择单词类型的前4个记录。
最佳答案
在MySQL中,您可以执行以下操作:
SELECT *
FROM wordstyped
WHERE (idGame, guidUser) IN (
SELECT idGame, guidUser
FROM games
);
它将对子查询匹配
idGame, guidUser
对。但是,我建议遵循以下标准:SELECT *
FROM wordstyped
WHERE EXISTS (
SELECT 1
FROM games
WHERE idGame = wordstyped.idGame AND guidUser = wordstyped.guidUser
);
关于mysql - 如何在mysql中选择具有多列值等于一组特定值的记录?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53816658/