0

SQLは間違いなく私の強みではありません。私はそれが通り抜けるのに十分よく知っています。私が本当にうまく学ぶことができなかったのは、結合の使い方でした。条件ステートメントを結合で機能させることはできず、その理由もわかりません。だから私はそれを理解するだろうと思いました。私はプライベートニュースフィードを作成しています。これはデータベースからフェッチするための私のSQLです。

SELECT * FROM feed
WHERE INNER JOIN friends ON feed.user = friends.user1
WHERE friends.user2 = ? AND day = ?
ORDER BY id DESC
LIMIT 15

PDOステートメントが返すエラーは次のとおりです。

  • 'SQLSTATE [42000]:構文エラーまたはアクセス違反:1064SQL構文にエラーがあります。MySQLサーバーのバージョンに対応するマニュアルで、「INNER JOIN friends ON feed.user = friends.user1 WHERE friends.user2 ='atline1」の近くで使用する正しい構文を確認してください。

'AND day =?'の後でその余分な条件を取り除くと、行はそれ自体で正常に機能します。しかし、それは現在書かれているようには機能しません。したがって、このステートメントは機能します

SELECT * FROM feed
INNER JOIN friends ON feed.user = friends.user1
WHERE friends.user2 = ?
ORDER BY id DESC
LIMIT 15

私の質問は、「AND day =?」をどのように追加するかです。正しい方法でステートメントに?

4

1 に答える 1

0
SELECT * FROM feed 
INNER JOIN friends ON feed.user = friends.user1 
WHERE friends.user2 = ? AND feed.day = ? 
ORDER BY feed.id DESC LIMIT 15
于 2013-03-17T22:33:12.503 に答える