2016-05-15 35 views
0

previous question給我,我可以採取計數和排序,並加入

mysql> describe taps; 
+------------+-----------+------+-----+-------------------+-------+ 
| Field  | Type  | Null | Key | Default   | Extra | 
+------------+-----------+------+-----+-------------------+-------+ 
| tag  | int(11) | NO |  | NULL    |  | 
| station | int(11) | NO |  | NULL    |  | 
| time_Stamp | timestamp | NO |  | CURRENT_TIMESTAMP |  | 
+------------+-----------+------+-----+-------------------+-------+ 
3 rows in set (0.00 sec) 

,並使用查詢

SELECT tag 
    , COUNT(DISTINCT station) as `visit_count` 
    FROM taps 
GROUP 
    BY tag 
ORDER 
    BY COUNT(DISTINCT station) DESC 

得到由他們訪問站點的數量下令遊客答案。

現在我想添加

mysql> describe visitors; 
+--------+---------+------+-----+---------+-------+ 
| Field | Type | Null | Key | Default | Extra | 
+--------+---------+------+-----+---------+-------+ 
| tag_id | int(11) | NO |  | NULL |  | 
| name | text | NO |  | NULL |  | 
| email | text | NO |  | NULL |  | 
| phone | text | NO |  | NULL |  | 
+--------+---------+------+-----+---------+-------+ 
4 rows in set (0.00 sec) 

而且,而不是讓遊客tag_id,我希望得到他的nameemailphone。我知道,它涉及到一個JOIN,但就是無法弄清楚:-(


[更新]只是要清楚,我想輸出HTML表格,由誰訪問了大多數電視臺訂購,顯示的姓名,電子郵件&電話

+1

不能通過遊客獲得的訪問者,如果你是站分組。 – shikhar

+1

組來代替。 – shikhar

+0

你能告訴我,我怎麼了? – Mawg

回答

1
SELECT tag 
    ,v.email, COUNT(DISTINCT station) as `visit_count` 
    FROM taps as t JOIN visitors as v ON t.tag = v.tag_id 
GROUP 
    BY v.email 
ORDER 
    BY COUNT(DISTINCT station) DESC 
+0

不明白爲什麼要通過電子郵件分組&發生了什麼事?對不起,無論如何,這返回'空集' – Mawg

+1

您可以使用電子郵件郵件或電話,無論哪個都是唯一的。嘗試沒有group by子句,你會得到任何輸出嗎? – shikhar

+0

唯一唯一的就是'tag_Id',所以我加入了這個。我需要GROUP,因爲我想獲得點數,而不是每次訪問。 – Mawg