我有表,'jobs',由job_id索引,和與外鍵'job_id'進行表討論。Laravel - 使用兩個表的位置之間的連接
在作業中,我有一個名爲'summary'的專欄,並且在討論中有一個名爲'body'的專欄。我想在這兩個表中的這兩列中搜索相同的文本字符串,並返回適用的作業。
例如,如果job_id = 7的工作記錄在'summary'列中包含字符串'somestring',並且討論記錄具有外鍵job_id = 20並且具有'somestring'字符串,我希望工作記錄爲job_id = 7和job_id = 20返回。
我正在使用laravel。我無法找到一個解決方案,這是我得到的最接近:
$query->join('discussions', function($join) use ($search_term){
$join->on('jobs.job_id', '=', 'discussions.job_id');
$join->where('discussions.body', 'LIKE', $search_term);
$join->orWhere('jobs.summary', 'LIKE', $search_term);
})
但這只是返回一切從我的討論桌。有沒有人有什麼建議?
謝謝:)
感謝您的解釋。我遵循上面提到的,儘管查詢按照您的說法進行渲染,但我仍然只能從討論表中找回結果。 jobs.summary中包含文本的作業將被忽略。 – Ste77
查詢是肯定的,但也許你需要'leftJoin'而不是(內部)'join'呢? –
乾杯,左加入已經做到了,我現在得到正確的結果:)非常感謝。然而,job_id字段在作業表中返回的結果中現在是空的。任何想法爲什麼會發生? – Ste77