我有两个表,table1中的id是table2中的两列。如何正确显示?

时间:2018-03-17 17:34:19

标签: sql

我有一个名为try { WooRestAPI rest = new WooRestAPI(baseUrl, key, secret); WCObject wc = new WCObject(rest); int pageNum = 1; while (true) { var page = pageNum.ToString(); var getOrders = await wc.Order.GetAll(new Dictionary < string, string > () { { "page", page }, { "per_page", "100" } }); if (getOrders.Count < 100) { ExtractWooData(getOrders); break; } else { ExtractWooData(getOrders); pageNum++; } } WriteToConsole(orders); WriteToFile(orders, outputPath); } catch (Exception e) { throw new Exception(e.Message); } 的团队表和一个名为list的游戏表。

games可以位于Team_IDgames_home列中。如何在SQL中使用它?

games_away

这没有显示任何结果。

关系形象:

enter image description here

example of output

id 13 = man u id 9 =利物浦 等

my problem

2 个答案:

答案 0 :(得分:1)

如果您想要将两个团队的数据放在一行中,则需要两个连接:

SELECT g.*, l1.Team as home_team, l2.Team as away_team, l1.*, l2.*
FROM games g
    INNER JOIN list l1 ON l1.Team_ID = g.games_home
    INNER JOIN list l2 ON l2.Team_ID = g.games_away 

只选择你真正需要返回的列,并像上面那样对它们进行别名,这样你就可以区分家庭与远离。

答案 1 :(得分:0)

你可以用两个查询创建一个UNION ALL:一个选择主场比赛,另一个选择客场比赛

SELECT l.*, g.*
  FROM list l
 INNER JOIN games g
    ON g.games_away = l.team_ID
 UNION ALL
SELECT l.*, g.*
  FROM list l
 INNER JOIN games g
    ON g.games_home = l.team_ID