請問大大以下MYSQL 語法中 AND A
.name
= B
.name
如何添加到 Laravel Models專用語法內
SELECT *
FROM A
LEFT JOIN B
ON A
.id
= B
.id
AND A
.name
= B
.name
WHERE A
.sn
= 27
小弟只會寫這樣
A::leftJoin('B', 'A.id', '=', 'B.id')
->where('A.SN',27)
->get();
這樣搜出來的會出現重複
如果再添加AND A
.name
= B
.name
就能有效過濾
但
該如何添加進去Laravel內?
謝謝大大指教
ChatGPT 人工智慧專家建議這樣寫:
認真來說。
JOIN相關的用法都還不是正規 Laravel Models 真正的用法。
美其名只是在MODEL內自行跑原本內部使用的處理。
正確的Laravel Models,並不會直接使用到JOIN來做處理的。
但也因為如此,很多人已經習慣了SQL語法後。
突然想要換成ORM的寫法而腦袋打結。
畢竟其用法規則已經完成變得不一樣了
就你的例子而言
因該是 A B兩個MODEL。再其A MODEL內 husone 關聯到B。
class A extends Model
{
......
public function B()
{
return $this->hasOne('App\Models\B', 'id', 'id');
}
}
再取用 with 對應處理就好。
$aDb = A::with(['B'])->WHERE('SN',27)->get();