我必须使用连接表吗? [MYSQL]
问题描述:
比方说,我有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
答
我想这应该得到你想要的东西(假设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
答
你必须使用连接。
如何让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
但是,这是低效的,并使用连接才是正道去做吧。
太棒了!谢谢 :) – Dale12