我有一个名为“games”的 mysql 表,其中包含以下字段:id、team1、team2 和 date。我有第二个名为“teams”的 mysql 表,其中包含以下字段:id、name、grade。
我的目标是选择日期 = 3 月 1 日的所有“游戏”,然后选择等级 = 10 的所有“游戏”。
所以我想我需要某种子查询,但我不太了解 sql。任何帮助表示赞赏。
到目前为止我所知道的是:
("SELECT * FROM games WHERE date = '2012-03-01'")
非常感谢。我也确实想要一个 sql 语句...
最佳答案
我假设 games.team1
与 teams.id
相关,games.team2
也是如此。
您只需使用 JOIN
将您的 teams
表带入查询。
由于 games
中有两列通过 teams.id
列与 teams
相关,因此您必须使用两个连接:
SELECT games.*
FROM games
JOIN teams t1 ON games.team1 = t1.id
JOIN teams t2 ON games.team2 = t2.id
WHERE date = '2012-03-01'
AND t1.grade = 10
AND t2.grade = 10
我已指定两支球队都在 10 年级,但如果您希望至少有一支球队在 10 年级,您可以将其更改为 OR。(假设有一场比赛是 12 年级的球队对10 年级团队)。
关于mysql - 带有子查询的 sql select 语句(我认为),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9627487/