复杂的sql连接表

时间:2015-12-30 06:39:12

标签: mysql sql laravel laravel-4

我有4张桌子 chartchart_detailcustomerproduk
像这样

enter image description here enter image description here

enter image description here enter image description here

我想运行sql命令列出chart

中的数据

cart表加入chart detail&表示我没有问题customer表 因为

chart.id = chart_detail.id_chart
chart.id_customer = customer.id

DB::table('chart')
    ->join('customer', 'chart.id_customer', '=', 'customer.id')
    ->join('chart_detail', 'chart.id', '=', 'chart_detail.id_chart')->get(); 

但我有问题无法访问nama_produk
(在chart_detail表中只有id_produk)...所以我需要加入chart表和produk

DB::table('chart')
    ->join('customer', 'chart.id_customer', '=', 'customer.id')
    ->join('produk', 'produk.id', '=', 'chart_detail.id_produk')
    ->join('chart_detail', 'chart.id', '=', 'chart_detail.id_chart')->get(); 

但我得到这样的错误

Column not found: 1054 Unknown column 'chart_detail.id_produk' in 'on clause'

因为chart表格中没有id_produk id_produk表格中提供了chart_detail

我想知道如何解决它

1 个答案:

答案 0 :(得分:3)

您的联接无序,因此有关未知列的错误。请尝试以下代码:

DB::table('chart')
    ->join('customer', 'chart.id_customer', '=', 'customer.id')
    ->join('chart_detail', 'chart.id', '=', 'chart_detail.id_chart')
    ->join('produk', 'produk.id', '=', 'chart_detail.id_produk')->get();