MySQL将2行合并为一行

时间:2013-10-19 10:47:44

标签: php mysql sql

我有两张这样的表:

Item
-------------------------------------
|ID | ImageURLID | BannerImageURLID |
-------------------------------------
| 1 |     1      |        2         |
| 2 |     3      |        4         |
| 3 |     5      |        6         |
-------------------------------------

ImageURL
--------------------------------------
|ID |   iOSURL    |   iOSRetinaURL   |
--------------------------------------
| 1 | www.test.at |   www.testR.at   |
| 2 | www.bann.at |   www.bannR.at   |
| 3 | www.test.at |   www.testR.at   |
| 4 | www.bann.at |   www.bannR.at   |
| 5 | www.test.at |   www.testR.at   |
| 6 | www.bann.at |   www.bannR.at   |
--------------------------------------

我希望输出看起来像这样:

-------------------------------------------------------------------------------------
|ID | ImageURLiOS | ImageURLiOSRetina | BannerImageURLiOS | BannerImageURLiOSRetina |
-------------------------------------------------------------------------------------
| 1 | www.test.at |   www.testR.at   |    www.bann.at     |      www.bannR.at       | 
| 2 | www.test.at |   www.testR.at   |    www.bann.at     |      www.bannR.at       | 
| 3 | www.test.at |   www.testR.at   |    www.bann.at     |      www.bannR.at       | 
-------------------------------------------------------------------------------------

我尝试了一些分组和内部联接,但没有什么真正起作用。 是否可以使用SQL实现这一点,还是必须进行一些PHP处理?

1 个答案:

答案 0 :(得分:2)

select i.id, 
       u.iOSURL as ImageURLiOS,
       u.iOSRetinaURL as ImageURLiOSRetina, 
       ur.iOSURL as BannerImageURLiOS,
       ur.iOSRetinaURL as BannerImageURLiOSRetina 
from item i 
left join imageurl u on u.id = i.imageurlid
left join imageurl ur on ur.id = i.bannerimageurlid
相关问题