我有一個表與測試日期(測試)和一個表與每個測試日期(結果)的結果表。 我首先獲取特定運動員/客戶的所有測試記錄。 然後我需要獲得每個測試記錄的所有結果。 我只是設法讓它與foreach循環一起工作。 1.是否有更優化的方式來構建查詢? 2.對於刀片服務器,它可能更具有結構化,使陣列按照test_id排序?在刀片中,我將測試數據顯示爲標題以及下面每個標題的結果。Laravel 5.3其中從現有集合 - 優化
下面的第一個選項與子查詢不起作用。獲取未找到數據庫表錯誤:
$athlete_tests = Test::where('athlete_id', $an_athlete->id)->get();
if($athlete_tests){
$results = Result::whereIn('test_id', function($query) use ($an_athlete){
$query->select('test_id')
->from('Test')
->where('athlete_id', $an_athlete->id);
})->get();
}
這一件作品 - 必須進行優化:
$athlete_tests = Test::where('athlete_id', $an_athlete->id)->get();
if($athlete_tests){
$results = collect([]);
foreach ($athlete_tests as $key => $value) {
$results = $results->merge(Result::where('test_id', $value->id)->get());
}
}
http://stackoverflow.com/questions/40458146/l aravel-5-3-which-returns-unique-result幫助了,但是如果沒有第一個,我無法得到第二個集合。 – louisav