gpt4 book ai didi

mysql - 在连接的 jquery 结果中选择 WHERE 子句的相对行

转载 作者:行者123 更新时间:2023-11-29 04:52:36 24 4
gpt4 key购买 nike

我有一个包含用户和游戏的数据库。一个游戏可以有多个用户,所以我制作了一个名为 users_games 的链接表。关键是一个游戏总是只能有 2 个玩家,因为它是棋盘游戏。我知道我是哪个玩家,我有我的 user_id 和我的电子邮件,但我想获得一个结果,让我列出我所在的所有游戏以及其他人的 user_id 和电子邮件。因此,一个查看我参加的所有游戏的查询并给出另一行,其中包含玩家的名字。

我的表:

游戏

id (int)
board (varchar) representation of the board

用户

id (int)
email (varchar)
password (varchar MD5)

用户游戏

id (int)
user_id (int)
game_id (int)

为了澄清这个查询

SELECT * 
FROM `tic_users_games` AS ug
LEFT JOIN tic_users AS u
ON ug.user_id = u.id
RIGHT JOIN tic_games AS g
ON ug.game_id = g.id

结果

id  user_id     game_id     id  email   password    id  board   created     updated 

1 1 1 1 ME@gmail.com d56b699830e77ba53855679cb1d252da 1 0|0|0|0|0|0|0|0|0 2012-04-02 16:56:06 2012-04-02 16:56:06
2 2 1 2 FOE1@gmail.com d56b699830e77ba53855679cb1d252da 1 0|0|0|0|0|0|0|0|0 2012-04-02 16:56:06 2012-04-02 16:56:06
3 3 2 2 FOE2@gmail.com d56b699830e77ba53855679cb1d252da 2 0|0|0|0|0|0|0|0|0 2012-04-02 16:56:06 2012-04-02 16:56:06
4 1 2 1 ME@gmail.com d56b699830e77ba53855679cb1d252da 2 0|0|0|0|0|0|0|0|0 2012-04-02 16:56:06 2012-04-02 16:56:06

参见:在上面的例子中,我只想要 2 行:game_id 1 和 2,以及 FOE1@... 和 FOE2@...

谢谢

最佳答案

这应该可以为您完成。语法对于 mysql 可能不准确,但你应该明白了。基本上让所有在 user_games 表中有游戏的用户与我所在的游戏具有相同的 game_ID:

SELECT
User_Games.Game_ID,
Users.ID,
Users.Email
FROM
Users
LEFT JOIN User_Games ON Users.ID = User_Games.User_Id
WHERE
Users.User_ID <> @yourUserID
AND EXISTS
(SELECT
NULL
FROM
User_Games AS MyUserGames
WHERE
User_Games.Game_ID = MyUserGames.Game_ID
AND MyUserGames.User_ID = @yourUserID)

关于mysql - 在连接的 jquery 结果中选择 WHERE 子句的相对行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9994108/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com