Laravel加入并从多个表中进行选择

时间:2017-05-31 11:35:49

标签: php mysql laravel

所以我有Laravel 5.2,在我的SQL数据库中我有几个表: 字段为bookstitleauthor year , 字段为journalstitleyear的字段为 price newspapers 包含字段titletownyear

我需要获得所有三个表中所有标题的列表,其中年份是1994年。我已尝试执行以下操作

$titles = DB::table('books')->where('books.year', 1994)->leftjoin('journals as journals', 'books.year', '=', 'journals.year')->leftjoin('newspapers as newspapers', 'books.year', '=', 'newspapers.year')->select('books.title', 'journals.title', 'newspapers.title')->get();

但是通过这个查询,我得到了null个条目,并且只填写了报纸。我做错了什么?

2 个答案:

答案 0 :(得分:3)

在这种情况下(如果表格不相关),你应该使用union,no join。

$books = DB::table('books')->select('title')->where('year', 1994);
$journals = DB::table('journals')->select('title')->where('year', 1994);
$titles = DB::table('newspapers')->select('title')->where('year', 1994)->union($books)->union($journals)->get();

答案 1 :(得分:0)

您需要指定年份列:

type="url"