我遇到了一个更复杂的问题(或者我的思想就是这样)SQL查询。我试着尽可能地解释所需要的东西。
这就是它本身的样子:http://i.imgur.com/obWY7.png
这个想法是,将有一些体育游戏,孩子们与职业玩家合作,他们有一个锦标赛。现在一切正常,直到我得到分数部分。
我需要一个以4个colomns返回游戏结果的查询: winchildname,winproname,losechildname,loseproname。
这样很容易在我的C#项目中显示。如果我使用此查询:
SELECT * FROM Games WHERE g_win = 1 OR g_lose = 1
这将返回孩子使用k_id 1玩的每个游戏,但结果是ints而不是实际文本。我知道如何内连接1 int所以它变成文本,但不是2.因为g_win和g_lose都是子表中的k_id。
是否有人可以给我一个提示,因为我觉得我正在过度思考这个重要时刻。
答案 0 :(得分:1)
您可以通过为表提供别名来多次在同一个表上连接:
WITH Names AS (
SELECT k_id AS id, k_name, p_name
FROM Child
JOIN Pro ON k_pro = p_id
)
SELECT win.k_name AS win_k_name, win.p_name AS win_p_name, lose.k_name AS win_k_name, lose.p_name AS lose_p_name
FROM Games
JOIN Names AS win ON g_win = win.id
JOIN Names AS lose ON g_lose = lose.id