php codeigniter汇编查询结果

时间:2009-07-27 02:44:01

标签: php mysql codeigniter

我的设置如下:

Table 'data': 'title','body',...,'user_id',...  
Table 'users': 'user_id','some_val'...

基本上我想以某种方式在user_id字段上加入表'data'和'users',这样我就可以从'users'表中提取'some_val'。我的问题是并非'data'表中的每个user_id都在'users'表中有相应的条目。

使用codeigniter / php,我最终想要汇总一个包含所有'some_vals'的值的结果数组,这些值来自加入data.user_id = users.user_id的'users'表。但是当数据表中存在user_id但不存在于users表中时,我想在我的结果数组中插入一些默认值(希望这个数组的顺序与数据表中的user_id的顺序相同)。

希望这不太清楚。有什么想法吗?

1 个答案:

答案 0 :(得分:2)

你想要做的是所谓的left join。从本质上讲,这会占用data的所有行并匹配users表。但是,如果data没有匹配的user_id,则只会为这些列加载null。为了处理这些null,您可以使用coalesce函数,该函数将null替换为某个值(如果是数字则可以是1234,但我只选择{{1}用于演示目的)。

无论如何,这一切都像这样:

'DefaultVal'