後に冗長なフィールドを削除します。MySQLの - 私は、複数の結合テーブルにクエリを実行していたクエリ
SELECT TableA.*,
TableB.Data as Data_B,
TableC.Data as Data_C,
TableD.Data as Data_D,
TableE.*
FROM TableA JOIN TableB ON TableB.ID = TableA.ID
JOIN TableC ON TableC.ID = TableB.ID
JOIN TableD ON TableD.ID = TableC.ID
JOIN TableE ON TableE.ID = TableA.ID
WHERE DataToFind = '$SubmittedData'
をそれは良い動作しますが、テーブルAがメインテーブルで、TableEはに関連する複数の子テーブルであるため、私がTableAフィールドで検索を実行すると、TableAレコードの数だけTableAの行が赤くなってしまいます。
私は私が私の検索を実行しただけで、AFTER DISTINCTにしたいので、私の理想的なクエリは次のようになります。
SELECT DISTINCT ID FROM
(
SELECT TableA.*,
TableB.Data as Data_B,
TableC.Data as Data_C,
TableD.Data as Data_D,
TableE.*
FROM TableA JOIN TableB ON TableB.ID = TableA.ID
JOIN TableC ON TableC.ID = TableB.ID
JOIN TableD ON TableD.ID = TableC.ID
JOIN TableE ON TableE.ID = TableA.ID
WHERE DataToFind = '$SubmittedData'
)
WHERE ID IS NOT NULL
しかし、私は、「予期しないトークン」や他の構文エラーを取得していますので、それは働いていません。
正しくフォーマットする方法を教えてもらえますか?
p.s.見つけたIDを使用して必要なときに回復できるので、いくつかのTableEレコードを失うかどうかは気にしません。
phpとの関係は何ですか?ここにmysqlと変数があります。私たちはそれがどのように/どこに割り当てられているのかわかりません。 –
問題はPHPに関連していません。例としては単なる可変変数です。フォーカスはMySQL上でなければなりません。 – Singee
ミスマッチしないでください。私は編集で削除しました。 –