2016-01-06 89 views
0

比方说,我有2个表:我必须使用连接表吗? [MYSQL]

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 

回答

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 
+0

太棒了!谢谢 :) – Dale12

0

你必须使用连接。

如何让MySql知道Activities表中的哪个条目与参与者中的哪个条目相对应?

连接的一部分规定:

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 

但是,这是低效的,并使用连接才是正道去做吧。