![](/img/trans.png)
[英]MySQL - UNION SELECT with RLIKE and GROUP BY - not able to insert INNER JOIN
[英]MySQL select inner join and union
我有這兩個表。 我當前有玩家id_player,我想從該玩家(id_player)及其對手信息中選擇所有游戲。 當前玩家和對手玩家使用相同的id_game連接。 要么
table game:`id_game` (...)
table game_player:`id_game_player, id_player, id_game`(...)
“將當前玩家和他的對手的所有單獨游戲信息提供給我,並加入他們游戲的信息(按游戲分組)”
結果為:
+---player game info
game1 |
+---opponent game info
+---player game info
game2 |
+---opponent1 game info
+---player game info
game2 |
+---opponent2 game info
誰能為我提供MySQL解決方案?
謝謝
編輯:我嘗試使用此代碼,但我不確定這是最快的方法(在何處),是否有任何方法可以對上述結果進行分組?
SELECT * FROM game_player
JOIN `game` ON game.id_game = game_player.id_game
WHERE game_player.id_game
IN (
SELECT game_player.id_game
FROM `game_player`
WHERE game_player.id_player =2)
試試看
SET @player_ID = 0; -- <<== the playerID
SELECT a.*, b.*, 'player' Status -- this is the first part of the union
FROM game a -- which gets all the game of
INNER JOIN game_player b -- the selected player and its info
ON a.id_game = b.id_game
WHERE id_player = @player_ID
UNION ALL
SELECT d.*, c.*, 'opponent' status
FROM game_player c
INNER JOIN
(
SELECT a.*
FROM game aa
INNER JOIN game_player bb
ON aa.id_game = bb.id_game
WHERE bb.id_player = @player_ID
) d ON c.id_game = d.id_game AND c.id_player <> @player_ID
ORDER BY id_game, status
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.