私はSQLを使い慣れていないので、私は何をしようとしているのか簡単にしていきます。SQL - SubQuery - SQL構文のエラー
メッセージを選択するには、最新のものから始めて5個までのデータを選択し、最後に最新の「時間」列を並べ替えるシステムがありますそれらを適切に表示する。ここで
は、私が使用している構文です:SELECT * FROM messages WHERE sender = '$uid' AND reciever = '$new_user_id'
OR reciever = '$uid' AND sender = '$new_user_id' ORDER BY id ASC
FROM (SELECT * FROM messages ORDER BY time DESC)
そして、ここで私が取得していますエラー:あなたのSQL構文でエラーが発生している
。ライン1
で は「(時間DESC BYメッセージORDER SELECT * FROM)から」 近くを使用する権利構文についてはMySQLサーバのバージョンに対応していること取扱説明書を確認し、私は私が何か間違ったことを得ていることを理解しますここでは、SQLは実際に私のものではないので、私はどこに向けるのか分からない。
小さな助けが大きな原因になるだろう、私は何時間も壁に頭を叩いていた。
ありがとうございました。挿入された最後の5つの項目で昇順の時間値を頼るように編集
SELECT *
FROM (SELECT * FROM messages ORDER BY time DESC LIMIT 5)
WHERE (sender = '$uid'
AND reciever = '$new_user_id')
OR (reciever = '$uid'
AND sender = '$new_user_id')
ORDER BY time ASC;
EDIT:
おそらく、あなたは 'FROM'を2回定義しているのでしょうか? – hjpotter92
ちょうどそれを編集しました。私は2番目のFROMの前にORDER BYを逃したようです。 –
あなたはまだ2つの 'FROM'ステートメントを使用しています。クエリをサブパーツに分割してみてください(私の答えで行ったように)、ロジックをよりよく知るのに役立ちます。 ;) – hjpotter92