1

データを取得する必要がある 2 つのテーブルがあります。最初のテーブルはアプリケーションで、2 番目のテーブルは validation_status です。各アプリケーションには 20 のステップがあり、verification_status にはそのステップが完了した日付が含まれています。いくつかの特定のステップから、完了日とともにアプリケーションを取得しようとしています。

基本的に、私が必要としているのは、applications_id と validation_step_id に基づいて一致した特定の検証ステータス行の日付と共に、すべてのアプリケーション データを含む行です。

これを試してみたところ、「「where句」の列「applications.id」が不明です」というエラーが表示されます

サブクエリを取り出すとうまくいきます。

SELECT * FROM applications,
(SELECT date FROM verification_status WHERE application_id = applications.id AND verification_step_id = 1) as steponedate
LEFT JOIN application_details ON application_details.application_id = applications.id
WHERE application_details.application_status_id != 1 AND application_details.application_status_id != 2 
4

3 に答える 3

2

これを試してください:

SELECT
  a.*,
  ad.*,
  vs.date as steponedate
FROM applications a
  LEFT JOIN verification_status vs
    ON vs.application_id = a.id
    AND vs.verification_step_id = 1
  LEFT JOIN application_details ad
    ON ad.application_id = a.id
WHERE ad.application_status_id != 1
  AND ad.application_status_id != 2;
于 2013-09-18T13:43:09.520 に答える
0

このサブリクエストでアプリケーション テーブルを宣言してみてください。

SELECT date FROM verification_status,applications WHERE application_id = applications.id AND verification_step_id = 1
于 2013-09-18T13:05:00.400 に答える