我必须使用连接表吗? [MYSQL]

时间:2016-01-06 19:00:31

标签: mysql jointable

我们说我有两张桌子:

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

2 个答案:

答案 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

但这是低效的,使用连接是正确的方法。