加入多个表(第三个表上的多个条目)到每个用户的单行

时间:2015-08-11 02:41:02

标签: php mysql join

我认为有办法做到这一点,所以可能只是遗漏了一些东西......我有3个表格,其中包含以下条目类型:

  

T1: UserID,firstName,lastName
T2: categoryID,categoryName
   T3: UserID,categoryID,data

我需要找到一种方法来提取数据,以便它显示第一个和最后一个名称,并将每个5个不同categoryID的数据响应显示为每行一个条目:

  

t1.firstName,t1.lastName,t3.data(对于categoryID1),t3.data(对于   categoryID2),t3.data(对于categoryID3),t3.data(对于categoryID4),   t3.data(类别ID5)

我有基本的加入:

SELECT t1.firstname AS First, t1.lastname AS Last, t2.data
FROM user as t1
INNER JOIN user_info_data as t2 
ON t1.id = t2.userid
INNER JOIN user_info_field as t3 
ON t2.fieldid = t3.id AND t3.id >= 3

当然每个用户显示5行。现在我需要看看我是否可以从单个语句中组合5行中的每一行。

1 个答案:

答案 0 :(得分:0)

根据您提供的表格结构,此查询应该完成工作:

select
 t1.firstName, 
 t1.lastName, 
 group_concat(t3.data order by t3.category_id) as data
from t1
left join t3 on t1.UserID = t3.UserID
group by 
 t1.firstName, 
 t1.lastName