我有两张桌子

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/

10-12 20:48