这是我的控制者:
public function lihatpesanansemua() //ajax
{
if(Request::ajax())
{
$hasil = DB::table('pesanan')->join('pemesan','pemesan.id', '=', 'pesanan.idpemesan')->join('komputer', 'komputer.id' ,'=', 'pesanan.idkomputer')
->select('pesanan.id', 'pemesan.nama', 'pesanan.tglpesan', 'pesanan.jampesan', 'pesanan.jamakhir', 'komputer.nama_komputer', 'komputer.lantai', 'komputer.Kelas')
->orderby('pesanan.id', 'asc')
->get();
$hasil = json_encode($hasil);
return $hasil;
}
}
这就是内联。如何更改为完全外连接?谢谢,对不起,我的英文不好
答案 0 :(得分:2)
我不知道你的查询究竟想要实现什么,以及你需要一个完整的外部联接,但我会从MySQL没有内部支持全外连接开始这个答案。基于this SO question,我们可以找到一种方法来编写以下查询:
SELECT * FROM t1
FULL OUTER JOIN t2
ON t1.id = t2.id
这可以重写为左连接和右连接的UNION
:
SELECT * FROM t1
LEFT JOIN t2 ON t1.id = t2.id
UNION ALL
SELECT * FROM t1
RIGHT JOIN t2 ON t1.id = t2.id
在Laravel中,我们可以编写以下代码来表示上面的完整外连接:
$second = DB::table('t2')
->rightJoin('t1', 't1.id', '=', 't2.id')
$first = DB::table('t1')
->leftJoin('t2', 't1.id', '=', 't2.id')
->unionAll($first)
->get();
同样,我不知道为什么你认为你需要两个外部联接,但无论你是否应该能够调整上述代码和查询并根据你的情况使用它。
<强>参考文献:强>