2015-08-25 71 views
0

我试图为每个产品显示一行,但每个产品都有多个值。 这就是我想:MySQL Select,在列上显示一行并显示多个值

select pr.ID_PRO, pr.NOMBRE_PRODUCTO, img.DIRECCION, m.MARCA_NOMBRE from 
productos pr INNER JOIN 
img_pro img ON pr.ID_PRO = img.FOR_PRO INNER JOIN 
mm_productos_marca pm ON pm.ID_PRO = pr.ID_PRO INNER JOIN 
marca m ON m.ID_MAR = pm.ID_MAR; 

结果:

+--------+-----------------+---------------------------+--------------+ 
| ID_PRO | NOMBRE_PRODUCTO | DIRECCION     | MARCA_NOMBRE | 
+--------+-----------------+---------------------------+--------------+ 
|  1 | asdasd   | images/discos-esmeril.jpg | ABRATOOLS | 
|  1 | asdasd   | images/lol.png   | ABRATOOLS | 
|  2 | 123qwe1   | images/images.jpg   | ABRATOOLS | 
|  2 | 123qwe1   | images/images.jpg   | BRAND  | 
+--------+-----------------+---------------------------+--------------+ 

欲望结果:

+--------+-----------------+---------------------------+--------------+ 
| ID_PRO | NOMBRE_PRODUCTO | DIRECCION     | MARCA_NOMBRE | 
+--------+-----------------+---------------------------+--------------+ 
|  1 | asdasd   | images/discos-esmeril.jpg | ABRATOOLS | 
|  |     | images/lol.png   |    | 
+--------+-----------------+---------------------------+--------------+ 
|  2 | 123qwe1   | images/images.jpg   | ABRATOOLS | 
|  |     |       | BRAND  | 
+--------+-----------------+---------------------------+--------------+ 
+1

您正在寻找[GROUP BY](https://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html) –

+0

@DipenShah http://prntscr.com/88rrf7这是结果。 –

+0

这不是你想要的吗? –

回答

0

如果你都OK昏迷分离DIRECCION值(在我看来这是最好的解决方案),那么你可以使用以下查询

select ID_PRO,NOMBRE_PRODUCTO,group_concat(DIRECCION)as 
     DIRECCION,MARCA_NOMBRE from tab1 group by NOMBRE_PRODUCTO 
      order by id_pro 

昏迷分隔值使处理更容易