簡體   English   中英

在兩個表上的MS ACCESS SQL查詢

[英]MS ACCESS SQL Query on two tables

我是SQL新手,無法設置此查詢。 我有兩個表,一個表包含有關團隊的信息,名為TEAMS,如下所示:

TEAMS

Name|City|Attendance
Jets|  NY| 50
...

另一個保存有關所玩游戲的信息,名為GAMES:

游戲

Home|Visitors|Date     |Result
Jets| Broncos| 1/1/2012| Tie
...

對於GAMES中的每一行,我都要給出每支球隊(主隊和客隊)的名稱和城市,比賽的日期和結果-總共六個字段。

現在,我已經弄清楚了如何顯示字段,但僅顯示了一個團隊所在城市的信息,而不是兩個都顯示。 到目前為止,這是我的查詢。 我認為我需要某種子查詢,但無法弄清楚如何設置它。 謝謝您的幫助。

SELECT Home, City AS [Home City], Visitors, City AS [Visitor City], Date, Result
FROM GAMES, TEAMS
WHERE Home=Name
ORDER BY Home DESC , Result DESC , Visitors DESC;

您將需要使用TEAMS表兩次(並且在其上,而不是在where條件中使用隱式聯接,而應使用顯式聯接..更清晰,更易於閱讀):

select g.home, ht.city as home_city, 
       g.visitor, vt.city as visitor_city, 
       g.date, g.result
from (games as g
     inner join teams as ht on g.home = ht.name)
     inner join teams as vt on g.visitor = vt.name

在本示例中,我在表中使用別名來縮短表名( g表示GAMESht表示“主隊”,而vt表示“訪客隊”)。 注意,不是在where子句中定義關系條件,而是在from子句中直接定義它(使用inner join )。

您將需要兩次聯接 TEAMS表。

SELECT Home, HomeTeam.City as Home_City, Visitors, VisTeam.City AS Vis_City,
  -- more field
FROM GAMES JOIN TEAMS AS HomeTeam
ON GAMES.Home=HomeTeam.Name
   JOIN TEAMS AS VisTeam ON GAMES.Visitors=VisTeam.Name;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM