如何在一个查询中组合两个SQL查询

时间:2015-04-19 03:29:09

标签: mysql sql-server database oracle sqlite

我有两个彼此无关的查询,第一个查询返回4列,而第二个查询只返回1列。

那么如何组合呢?

查询1-

 $sql = "select postlist.* from postlist order by postlist.id desc ";

查询2 -

 $sql1 = "select count (commentlist.id) as 'comments',commentlist.id,commentlist.name,commentlist.comment from postlist,commentlist where postlist.id=commentlist.post_id";

当前查询 -

 $sql = "select postlist.*, count (commentlist.id) as 'comments' from postlist  LEFT   JOIN commentlist ON postlist.id=commentlist.post_id order by postlist.id desc ";

基本上,我想从帖子列表中返回所有记录,评论列表表格是否有任何相关评论。

这是一个数据库设计

drop table if exists postlist;

create table postlist (
    id integer not null primary key autoincrement,
    post varchar(1000) not null,
    name varchar(80) not null,
    title varchar(80) not null
); 

drop table if exists commentlist;

create table commentlist (
    id integer not null primary key autoincrement,
    post_id integer not null,
    comment varchar(80) not null,
    name varchar(80) not null
); 

1 个答案:

答案 0 :(得分:0)

get()会将它转换为Collection,它比数组更强大。你可以追加它,迭代它等等。 有一个bash。希望它应该是您所需要的:http://laravel.com/docs/4.2/eloquent#collections

$items = DB::select($sql)->get();
$items1 = DB::select($sql1)->get();

$items = items->toArray();
$items1 = items1->toArray();

$items = array_merge($items, $items1);