我有 2 个数据库db_1
和db_2
.
db_1
包含表 users
(包含 'uid','name'
列(
db_2
包含表 blog_posts
(包含'pid','uid','post_title'
列(
我想从blog_posts
中提取 20 个帖子以及与 blog_posts
中提到的uid
对应的用户名。我尝试将" join
"与codeigniter准备的mysql语句一起使用,但它不起作用.
获取此数据的最佳方法是什么。我不想为每个uid
一个接一个地获取名称,因为它会多次创建数据库连接,即 21(1 用于获取所有帖子,20 用于获取每个帖子用户名(,这会减慢速度。有没有更有效的方法。
好吧,我已经得到了问题的答案。我们可以做到以下几点。它将仅创建 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!' ) );
-
现在,从与数组中的步骤 1 中获得的所有
uid
相对应的users
中获取名称列表。$user_map= array( '2'=>'John', '5'=>'Robert', '11'=>'David' );
-
现在,您可以打印属于该帖子的用户名,如下所示:
foreach($post_data as $value) { echo $value['post_title']."-".$user_map[$value['uid']]; }