2016-01-06 92 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 

但是,這是低效的,並使用連接纔是正道去做吧。