gpt4 book ai didi

mysql - 如何在 laravel 5.0 中使用 outer full join?

转载 作者:行者123 更新时间:2023-11-29 01:51:22 25 4
gpt4 key购买 nike

这是我的 Controller :

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;
}
}

这就是内部连接。如何改为全外连接?谢谢,抱歉我的英语不好

最佳答案

我不知道您的查询到底想达到什么目的,也不知道您在什么地方需要完全外部连接,但我会在开始这个回答时说 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();

同样,我不知道为什么您认为您需要两个外部联接,但无论如何您应该能够根据您的情况调整上述代码和查询并使用它。

引用资料:

关于mysql - 如何在 laravel 5.0 中使用 outer full join?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41662033/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com