我有2个数据库db_1
和db_2
db_1
包含表格users
(包含'uid','name'
列)
db_2
包含表格blog_posts
(包含'pid','uid','post_title'
列)
我想从blog_posts
中提取20个帖子以及与uid
中提到的blog_posts
对应的用户名。我尝试使用' join
'与codeigniter准备了mysql语句,但它没有工作
获取此数据的最佳方法是什么?我不想为每个uid
逐个获取名称,因为它会多次创建数据库连接,即21(1个用于获取所有帖子,20个用于获取每个帖子的用户名),这会降低速度。有没有更有效的方法。
答案 0 :(得分:0)
好吧,我已经得到了问题的答案。我们可以做到以下几点。它只会创建2个数据库连接。
获取您要展示的'pid','uid','post_title'
的所有帖子,
在你的情况下说20。喜欢,
$post_data=
array(
0=>array(
'pid'=>1,
'uid'=>2,
'post_title'=>'Hello there!'
),
1=>array(
'pid'=>2,
'uid'=>5,
'post_title'=>'What's up!'
)
);
现在,获取users
中与您在数组中的第1步中获得的所有uid
对应的名称列表。
$user_map=
array(
'2'=>'John',
'5'=>'Robert',
'11'=>'David'
);
现在,您可以按如下方式打印属于帖子的用户姓名:
foreach($post_data as $value) {
echo $value['post_title']."-".$user_map[$value['uid']];
}