我有一个有两个表的mysql数据库:
游戏(身份证,姓名)
TICKET(ID,GameID,Section ...)
Game.ID是GAME中的主键,GameID在TICKET表中用作外键,以了解它所属的游戏。
我有sql语句:
SELECT * FROM GAME ORDER BY Date
它返回GAME表中的所有游戏记录。我想要一个只返回游戏记录的sql语句,如果至少有1条记录在TICKET表中使用它作为外键,那么只给我一些有票的游戏。
我已经尝试将这些表连接起来并以这种方式进行检查,但我的sql还没有。
提前感谢您提供的任何帮助。
答案 0 :(得分:2)
SELECT * FROM GAME
JOIN TICKET ON GAME.ID = TICKET.GameID
GROUP BY Game.ID
ORDER BY Date
答案 1 :(得分: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)
无论门票数量多少,每场比赛都会有一行。
答案 2 :(得分:2)
让我们变得花哨
SELECT * FROM GAME G
WHERE EXISTS
(
SELECT 1
FROM TICKET T
WHERE G.ID = T.GameID
)
答案 3 :(得分:0)
SELECT * FROM GAME ,TICKET where TICKET.GameID = GAME.ID ORDER BY Date