2016-04-21 97 views
1

您好我想,我是用联接查询来从数据库中获得数据,但我有此错误:如何在laravel 5中进行sql连接查询?

QueryException in Connection.php line 673: SQLSTATE[42000]: Syntax error or access violation: 1066 Not unique table/alias: 'surat_masuk' (SQL: select jenis_surat . jenis_surat , surat_masuk . nomor_surat , surat_masuk . perihal , surat_masuk . tanggal_publish from surat_masuk inner join jenis_surat on id_jenis_surat = jenis_surat . id_jenis_surat inner join surat_masuk on id_jenis_surat = surat_masuk . id_jenis_surat)

我有2个表,surat_masuk和jenis_surat,我想从jenis_surat表和nomor_surat得到jenis_surat场,perihal,tanggal_publish from surat_masuk表。并且在这两个表中都有id_jenis_surat列。 这是我的查询:

$surat = new Surat(); 
    $surats = $surat->join('jenis_surat', 'id_jenis_surat', '=', 'jenis_surat.id_jenis_surat') 
        ->join('surat_masuk', 'id_jenis_surat', '=', 'surat_masuk.id_jenis_surat') 
        ->select('jenis_surat.jenis_surat','surat_masuk.nomor_surat','surat_masuk.perihal','surat_masuk.tanggal_publish') 
        ->get(); 

你知道如何解决它?

+0

你可以分享beetwen模型jenis_surat和surat_masuk的关系? –

+0

哪个表在''id_jenis_surat','=','jenis_surat.id_jenis_surat''中包含'id_jenis_surat'字段 –

+0

您可以添加您希望通过上述代码实现的纯sql语句吗? – Jeemusu

回答

0
$surats = $surat->join('jenis_surat', 'surat_masuk.id_jenis_surat', '=', 'jenis_surat.id_jenis_surat') 
->select('jenis_surat.jenis_surat','surat_masuk.nomor_surat','surat_masuk.periha‌​l','surat_masuk.tanggal_publish')->get(); 
+0

如果有效,您应该接受答案,以便其他人可以从中受益。谢谢@ hendraspt –

0
$surat = new Surat(); 
$surats = $surat->join('jenis_surat', 'surat_masuk.id_jenis_surat', '=', 'jenis_surat.id_jenis_surat') 
->select('jenis_surat.jenis_surat','surat_masuk.nomor_surat','surat_masuk.perihal','surat_masuk.tanggal_publish') 
->get(); 

OR

$surats = \DB::table('surat_masuk') 
->join('jenis_surat', 'surat_masuk.id_jenis_surat', '=','jenis_surat.id_jenis_surat') 
->select('jenis_surat.jenis_surat','surat_masuk.nomor_surat','surat_masuk.perihal','surat_masuk.tanggal_publish') 
->get();