坚持使用T-SQL查询

时间:2012-05-26 12:40:20

标签: tsql

我遇到了一个更复杂的问题(或者我的思想就是这样)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。

是否有人可以给我一个提示,因为我觉得我正在过度思考这个重要时刻。

1 个答案:

答案 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