[英]Getting too many rows when joining tables
我不明白為什么在執行 select 語句時會得到這么多行。 兩個查詢都應返回 7017 行。
當我執行此語句時,我得到 7017 行:
SELECT playerID, yearid, teamid, B2 * 2 + B3 * 3 + HR * 4 + BB + H AS TotalBasesTouched
FROM BATTING
WHERE teamID IN ('NYA','NYN');
我也應該在這里得到 7017 行,但我得到的是 654,645。 我不確定我在這里做錯了什么。
SELECT distinct batting.playerID, batting.yearid, batting.teamid,
batting.B2 * 2 + batting.B3 * 3 + batting.HR * 4 + batting.BB + batting.H AS Total_Bases_Touched
,franchID
,Teams.B2 * 2 + Teams.B3 * 3 + teams.HR * 4 + teams.BB + teams.H AS Teams_Bases_Touched
,format((batting.B2 * 2.0 + batting.B3 * 3.0 + batting.HR * 4.0 + batting.BB + batting.H) /
(teams.B2 * 2.0 + teams.B3 * 3.0 + teams.HR * 4.0 + teams.BB + teams.H),'P') as 'Touched_%'
FROM Batting, Teams
WHERE batting.teamid IN ('NYA', 'NYN') and batting.teamid = teams.teamid;
嘗試這個:
注意: franchid
沒有引用表,所以我認為它是 t.franchid。 您的JOIN
語句位於WHERE
子句中,這會導致問題。
SELECT DISTINCT
b.playerID
,b.yearid
,b.teamid
,b.B2 * 2 + b.B3 * 3 + b.HR * 4 + b.BB + b.H AS Total_Bases_Touched
,t.franchID
,t.B2 * 2 + t.B3 * 3 + t.HR * 4 + t.BB + teams.H AS Teams_Bases_Touched
,FORMAT((b.B2 * 2.0 + b.B3 * 3.0 + b.HR * 4.0 + b.BB + b.H)
/
(t.B2 * 2.0 + t.B3 * 3.0 + t.HR * 4.0 + t.BB + t.H),'P') AS 'Touched_%'
FROM Batting AS b
JOIN Teams AS t
ON b.teamid = t.teamid
WHERE b.teamid IN ('NYA', 'NYN');
弄清楚了。 我需要加入 teamID和 yearID上的表
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.