2

我有一个 mysql 数据库,它有两个表:

游戏(ID、名称)

TICKET (ID, GameID, Section...)

Game.ID 是 GAME 中的主键,在 TICKET 表中使用 GameID 作为外键来了解它属于哪个游戏。

我有sql语句:

SELECT * FROM GAME ORDER BY Date

它返回 GAME 表中的所有游戏记录。我想要一个 sql 语句,如果至少有 1 条记录使用它作为 TICKET 表中的外键,它将只返回游戏记录,因此只给我有门票的游戏。

我已经尝试将这些表连接在一起并以这种方式进行检查,但是我的 sql 还不存在。

提前感谢您能给我的任何帮助。

4

4 回答 4

2
SELECT * FROM GAME
JOIN TICKET ON GAME.ID = TICKET.GameID
GROUP BY Game.ID
ORDER BY Date
于 2013-09-09T22:43:05.460 回答
2
select * from game g inner join ticket t on g.id = t.game_id

每张票将返回一行(一场比赛的 5 张票将在此处变为 5 行)...使用“内部连接”作为过滤器。

我怀疑你正在寻找更像

Select * from game where id in (select game_id from ticket group by game_id)

无论门票数量如何,这将为您每场比赛提供一排。

于 2013-09-09T22:45:45.380 回答
2

让我们变得花哨

SELECT * FROM GAME G
WHERE EXISTS
    (
    SELECT 1
    FROM TICKET T
    WHERE G.ID = T.GameID
    )
于 2013-09-09T22:48:18.327 回答
0
SELECT * FROM GAME ,TICKET   where TICKET.GameID  = GAME.ID ORDER BY Date  
于 2013-09-09T22:43:55.503 回答