現在のクエリに対して1の制限を持つ最大IDのみを選択するように設定しようとしています。SELECTクエリの最大IDを追加する
私は理解しようとしているものの実際の例を示す以下のrextesterへのリンクを持っています。私はこの例を作成したときに何が間違っていたのか分かりません。
とにかく、あなたが表示されます。私のprofile_img
表中のいくつかの値です
INSERT INTO `profile_img`
VALUES
(1,24,'beach'),
(2,55,'sandals'),
(3,56,'hotel'),
(4,55,'ocean'),
(5,55,'corona'),
(6,55,'tacos')
;
。今私の質問は、このON p.user_id = f.friend_one
のすべてのプロフィール画像を選択します。重複出力が発生しました。
私はちょうど出力
55
56
、それにappropiateの最大ID img
にそれをしたい:それはこのようになります。どのようにすればよいですかSELECT
img
の最大IDは、friend_oneと一致するuser_idのprofile_img
テーブルの列ですか? ON p.user_id = f.friend_one
。
ただし、ユーザーにはprofile_imgがないことがあります。これまで、私はこれをクエリに使って、デフォルトのimgを持っていない人のためにimgを取得しました。 (case when p.img <> '' then p.img else 'profile_images/default.jpg' end) as img
SELECT f.*
, p.*
FROM friends f
LEFT JOIN profile_img p
ON p.user_id = f.friend_one
WHERE f.friend_two = ?
AND f.status = ?
http://rextester.com/RLXS27142
あなたは '友人' を存在する場合は 'DROP TABLEを含める必要があります。 DROP TABLE IF EXISTS 'profile_img'; 'rextester http://rextester.com/ECAX16022の先頭にある –
@JuanCarlosOropezaありがとうございました!私はあなたが先日作ったものを見ていました。それが必要であることをちょうど知らなかった。 sqlfiddleはあまりにも厄介で遅いので、私はそのソースを見せてうれしいです。 – Paul
MySQL、Postgres、SQLサーバに必要なのはそれだけです –