例:
SELECT fbs_household_id,fbh_file_no, fbc_last_name,fbc_first_name
FROM fbs_household
LEFT JOIN (SELECT fbc_household_id, fbc_last_name,fbc_first_name FROM fbs_client WHERE fbc_household_id=fbs_household_id ORDER BY fbc_dob ASC LIMIT 1) t1 ON 1;
fbs_household_id
テーブルからのものですがfbs_household
、不明なフィールドというエラーが表示されます。
クエリを次のように書き直すことができます。
SELECT fbs_household_id,fbh_file_no, fbc_last_name,fbc_first_name
FROM fbs_household
LEFT JOIN fbs_client ON fbs_client_id=(SELECT fbs_client_id
FROM fbs_client
WHERE fbc_household_id=fbs_household_id ORDER BY fbc_dob ASC LIMIT 1)
しかし、これは非常に遅いです。速度を上げる方法はありますか?
各世帯の最年長メンバーと、その世帯に関するその他の情報を取得しようとしています (実際のクエリには、さらにいくつかの列と結合が含まれています)。
3番目の解決策も遅い:
SELECT fbs_household_id,fbh_file_no, fbc_last_name,fbc_first_name
FROM fbs_household
LEFT JOIN (SELECT fbc_household_id, fbc_last_name,fbc_first_name
FROM fbs_client
ORDER BY fbc_dob ASC) c1 ON fbc_household_id=fbs_household_id;