我们说我有两张桌子:
Participants (id, name, email, phone, registration_date)
Activities (id, coach_id, player_id, total_time, date)
我想找到所有玩家及其电子邮件的名字,其总时间总是超过60。 我是否必须使用'加入'对于这种情况?我无法解决这个问题并坚持使用以下代码
SELECT name, phone
FROM Participants, Activities
WHERE total_time > 60
答案 0 :(得分:1)
我认为这应该能得到你想要的东西(假设2个表基于Participants.id = Activities.player_id
关系相关)
SELECT Participants.name
, Participants.phone
FROM Participants
INNER
JOIN Activities
ON Participants.id = Activities.player_id
WHERE Activities.total_time > 60
答案 1 :(得分:0)
你必须使用加入。
MySql如何知道活动表中的哪个条目与参与者中的哪个条目相对应?
连接部分指定:
SELECT Participants.*
FROM Participants
INNER JOIN Activities ON Activities.player_id = Participants.id
WHERE Activities.total_time > 60
只是为了它,它可以在没有连接的情况下解决:
/* BAD CODE, DON'T USE */
SELECT *
FROM Participants
WHERE (SELECT Max(total_time) FROM Activities where player_id = Participants.Id) > 60
但这是低效的,使用连接是正确的方法。