2010-01-22 104 views
0

我被困在mysql中的一些表。不知道如何加入三张表中的信息。非常感谢有人能帮助我。谢谢。mysql比较表


这是我:

Table1.Users

+----+--------+--------------+ 
| id | name | lastname  | 
+----+--------+--------------+ 
| 1 | Peter | Elk   | 
| 2 | Amy | Lee   | 
| 3 | James | Ride   | 
| 4 | Andrea | Thompson  | 
+----+--------+--------------+ 

Table2.Projects

+-----+-------------+ 
| id | name  | 
+-----+-------------+ 
| 13 | Lmental  | 
| 26 | Comunica | 
| 28 | Ecobalear | 
| 49 | Puigpunyent | 
+-----+-------------+ 

Table3.Users_Projects

+----------+-------------+ 
| id_users | id_projects | 
+----------+-------------+ 
| 1  | 13   | 
| 1  | 28   | 
| 2  | 13   | 
| 2  | 28   | 
| 2  | 49   | 
| 3  | 28   | 
| 3  | 49   | 
| 4  | 49   | 
+----------+-------------+ 

我想打印是这样的:

+--------+--------------+----------------------------------+ 
| name | lastname  | project       | 
+--------+--------------+----------------------------------+ 
| Peter | Elk   | Lmental,Ecobalear    | 
| Amy | Lee   | Lmental,Ecobalear, Puigpunyent | 
| James | Ride   | Ecobalear,Puigounyent   | 
| Andrea | Thompson  | Puigpunyent      | 
+--------+--------------+----------------------------------+ 

回答

2

喜欢的东西...

SELECT Users.name, Users.lastname, Projects.name 
FROM (Users, Projects, Users_Projects) 
WHERE Users_Projects.id_users=Users.id AND Users_Projects.id_projects=Projects.id 
ORDER BY ... 

...将输出每行一个用户/项目,你会再有用你选择的语言操纵。

试图在SQL中执行级联等操作很容易导致一个非常可怕的查询。

+0

+1对于回答简单的问题 – 2010-01-22 16:46:06

+0

谢谢。我知道如何做这个查询和其余与PHP。只是想知道我是否可以直接使用mysql。 对于提出太简单的问题感到抱歉,不是我的目的。 – Thomas 2010-01-25 01:12:42

+0

你可以使用group_concat来获取它们 – Chella 2012-12-17 05:20:55