このクエリーではInner Joinが必要ですが、100%確実ではないと思います。SQLインナー3つのテーブルとの結合
まず第一に、私のデータベースダイアグラムを参照してください。私が達成しようとしている何
Click here for database diagram
:
- 私はすべてのメッセージ(そうuser_usernameを取得しようとしています、text、posted_at FROM Messages)ここで、user_usernameはfollows_usernameと一致し、follows_usernameには=?というfollower_usernameがあります。
- だから本質的に、誰もが続いて?、私はすべてのメッセージを取得したい。
ここで、 = inputed名
は、私がこれまで
を試してみた私は、SQL文の数を試したし、これまでに成功したことを取得することができませんでした。これらは私が試したものです。
$sql = "SELECT user_username, text, posted_at FROM Messages, Users, User_Follows WHERE user_username = (SELECT username FROM Users WHERE username = (SELECT followed_username FROM User_Follows WHERE follower_username = ?)) ORDER BY posted_at DESC;";
$sql = "SELECT user_username, text, posted_at FROM Messages, User_Follows WHERE follower_username = ? AND followed_username = user_username;";
$sql = "SELECT user_username, text, posted_at FROM Messages JOIN User_Follows ON user_username = followed_username WHERE follower_username = followed_username;";
私は今、私は私が望むものを達成するために参加するが、これは正しい、またはどのようにそれについて移動するかどうか、あまりにもわからないインナーを使用する必要があると思います。
ありがとうございます。
あなたの問題はクロスジョインです。決して暗黙の結合を使用するべきではありません。彼らは非常に貧しい技術で、このような問題を引き起こします。修正を提供するには、テーブル構造を確認する必要があります。 – HLGEM
あなたは私のリンクを見ましたか?@HLGEM – jsmith