2015-09-26 40 views
1

我有兩個表如何從兩個表中隨機化sql結果集?

Table1 person: 
-person_id 
-name 

Table2 expertise: 
-expertise_id 
-person_id 
-expertise_name 

我想實現的是與人的相應的2個隨機專長返回5分隨機的人。到目前爲止,我可以退回所有的人和他們所有的專業知識。

SELECT * FROM person p, expertise e WHERE e.person_id = p.person_id 

任何人都可以幫助我嗎?先謝謝你。

回答

1

也許最簡單的辦法是在一行中返回專長:

select p.*, 
     substring_index(group_concat(e.expertise_name order by rand()), ',', 2) as two_expertises 
from (select p.* 
     from person p 
     order by rand() 
     limit 5 
    ) p left join 
    expertise e 
    on p.person_id = e.person_id 
group by p.person_id; 
+0

謝謝!!!!真棒!!!!! – Paul