如何在下面查询只选择一条记录?每个游戏都有两个记录(每个团队一个记录)。如果有九(9)个游戏,则会有十八(18)个记录。我想为每场比赛只选择一条记录,而不是两条记录。
如果我只使用DISTINCT只有一列(game_id_2),它可以正常工作或只返回9条记录。但是,如果我尝试添加更多列,则DISTINCT指令不再有效。
SELECT DISTINCT
B.game_id_2,
B.GmeYear,
B.GmeMonth,
B.GmeDay,
B.GmeDate,
B.GmeTime,
B.GmeOrd,
B.Home,
B.DivPlay,
L.Instit,
FROM BsbGme B LEFT JOIN LeagueTeam L
ON B.team_id = L.team_id
WHERE B.NonD1=''
AND B.team_id IN ($participant_str)
AND B.GmeMonth = $GameMonth
AND B.GmeDay = $GameDay
ORDER BY B.game_id_2 ASC
根据w3schools dot来说,DISTINCT指令应该适用于多个列。但是我的例子中没有使用多列。
w3schools示例:
SQL SELECT DISTINCT语法 SELECT DISTINCT column_name,column_name FROM table_name ;
http://www.w3schools.com/sql/sql_distinct.asp
我已经在StackOverflow上查看了同一个问题的其他几个答案,但是我无法让它们工作。
提前谢谢。
答案 0 :(得分:1)
尝试使用括号DISTINCT(您的,列)或使用GROUP BY。