Codeigniter - 获取相关条目

时间:2014-03-07 13:46:14

标签: sql codeigniter

我有两个表,一个存储一些数据,如namesex等。结束与第一个表的images相关的存储id的秒数。

我需要获取第一个表的行并获取第二个表中的所有图像,我希望通过单个查询获取它们。

我该怎么做?可能吗?

我尝试使用simple join,但我只得到了第二个表的第一个元素。

示例表1:

----------------------
|ID | Name  | Sex    |
----------------------
| 1 | Chris | Male   |
----------------------
| 2 | Elisa | Female |
----------------------

表2:

------------------------------
| ID | User_id  | Image name |
------------------------------
| 1  | 1        | img1.jpg   |
------------------------------
| 2  | 1        | img2.jpg   |
------------------------------
| 3  | 1        | img3.jpg   |
------------------------------
| 4  | 2        | img4.jpg   |
------------------------------

我想:

Chris,男,img1.jpg,img2.jpg,img3.jpg
Elisa,女,img4.jpg

等等......有什么建议吗?

2 个答案:

答案 0 :(得分:0)

尝试使用左外连接

SELECT user.*, image.image_name as image 
FROM user 
LEFT OUTER JOIN image
ON user.id = image.user_id

如果没有找到,它将获取所有用户行并将empty val放入图像中。

答案 1 :(得分:0)

SELECT
    table1.*,
    GROUP_CONCAT(table2.image_name SEPARATOR ', ') as image_name
FROM table1
LEFT JOIN table2
ON table1.id = table2.user_id
GROUP BY table1.id;

演示SQL Fiddle