Php laravel DB查询选择多个表而不连接

Php laravel DB查询选择多个表而不连接,php,laravel,Php,Laravel,我这里有一个原始SQL查询,知道如何在laravel查询生成器中编写这个原始查询 以下是原始查询: SELECT tbl_stock.* , series.*, series_size.*, tbl_size.* FROM tbl_stock , series, series_size, tbl_size WHERE tbl_stock.series_id = series.series_id AND tbl_stock.size_id = series_size.size_id AND

我这里有一个原始SQL查询,知道如何在laravel查询生成器中编写这个原始查询

以下是原始查询:

SELECT tbl_stock.* , series.*, series_size.*, tbl_size.* FROM 
tbl_stock , series, series_size, tbl_size 
WHERE
tbl_stock.series_id = series.series_id AND 
tbl_stock.size_id = series_size.size_id AND
tbl_stock.size_id = tbl_size.size_id
我尝试过DB查询生成器laravel,但遇到异常

$stock_info = DB::table(['tbl_stock', 'shades'])->get();
这给了我这个

数组到字符串转换异常


提前感谢首先,您应该用现代语法替换陈旧的连接语法:

SELECT
    t1.*,
    t2.*,
    t3.*,
    t4.*
FROM tbl_stock t1
INNER JOIN series t2
    ON t1.series_id = t2.series_id
INNER JOIN series_size t3
    ON t1.size_id = t3.size_id
INNER JOIN tbl_size t4
    ON t1.size_id = t4.size_id;
然后,使用Laravel的查询生成器语法以PHP代码构建查询:

$stocks = DB::table('tbl_stock')
    ->join('series', 'tbl_stock.series_id', '=', 'series.series_id')
    ->join('series_size', 'tbl_stock.size_id', '=', 'series_size.size_id')
    ->join('tbl_size', 'tbl_stock.size_id', '=', 'tbl_size.size_id')
    ->select('tbl_stock.*', 'series.*', 'series_size.*', 'tbl_size.*')
    ->get();

使用join有什么问题?@Sagar Gautam我知道join会有用的。但是为了更大的灵活性,我使用了原始查询,我不想知道他们是否有任何可能的方式来使用query builder query builder我们比雄辩更快,所以如果可能,那么使用它:D@SagarGautam这并不总是正确的。如果您有一个非常胖的模型和瘦连接,那么使用Elounce是很快的。那么,是我还是使用tbl_stock.size_id与两个不同的表进行连接有点可疑?我们可以编写相同的查询而不使用joining@PavanBaddi不,我不能,因为你需要加入。这里要明确的是,您当前的查询正在进行连接,它只是在进行隐式连接,这很难理解。不要用那种语法,用我在回答中给出的。