1

我在处理更复杂的(或者我的想法是这样的)SQL 查询时遇到了很大的麻烦。我会尽力解释需要什么。

这就是它本质上的样子:http: //i.imgur.com/obWY7.png

这个想法是,将有孩子们与职业选手合作并举办锦标赛的体育比赛。现在一切正常,直到我进入乐谱部分。

我需要一个在 4 个列中返回游戏结果的查询:winchildname、winproname、loosechildname、looseproname。

这样很容易在我的 C# 项目中显示。如果我使用这个查询:

SELECT * FROM Games WHERE g_win = 1 OR g_lose = 1

这将返回 k_id 为 1 的孩子玩的每个游戏,但结果是整数而不是实际文本。我知道如何内连接 1 个 int 使其变为文本,但不是 2。因为 g_win 和 g_lose 都是子表中的 k_id。

有没有人可以给我一个提示,因为我觉得我想太多了。

4

1 回答 1

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
于 2012-05-26T12:55:14.610 回答