ID を使用した複数の SQL テーブルの接続: 「テーブルが不明です」エラーのトラブルシューティング
このガイドでは、ID を使用して複数の SQL テーブルを結合する際の一般的な問題に対処します。 テーブル A、B、C は正常に結合されましたが、テーブル D を追加すると「テーブル D が不明です」エラーが発生します。このエラーは、SQL クエリ内のテーブル D 参照が正しくないことを示します。 これを解決するには、テーブル D を既存の結合テーブルに正しくリンクする必要があります。
解決策
テーブル D を含めるように修正された SQL ステートメントは次のとおりです。
<code class="language-sql">SELECT TableA.*, TableB.*, TableC.*, TableD.* FROM TableA JOIN TableB ON TableB.aID = TableA.aID JOIN TableC ON TableC.cID = TableB.cID JOIN TableD ON TableD.dID = TableA.dID WHERE DATE(TableC.date) = CURDATE();</code>
この改良されたクエリでは、TableA
をアンカーとして使用します。 TableB
を使用して aID
を結合し、TableC
を使用して cID
を結合し、最後に TableD
を使用して dID
を結合します (dID
と TableA
の両方に TableD
が存在すると仮定します)。 WHERE
句は、TableC.date
が現在の日付と一致するエントリのみを含むように結果をフィルター処理します。 CURDATE()
の使用に注意してください。date(now())
は、明確さとデータベースの互換性のために、一般に
重要な考慮事項:
date(now())
CURDATE()
は一部のデータベースで動作しますが、これらの手順に従い、ID 列の存在と名前を確認すると、4 つのテーブルすべてが正常に結合されます。
以上が4 つのテーブルを ID で結合すると、SQL クエリが「TableD が不明」を返すのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。