0

私は3つのテーブルを持っています:

ユーザー

  • id_user
  • 名前

ユーザー画像

  • id_picture
  • id_user
  • ファイル名
  • ord(写真の順番)

ユーザーステッカー

  • id_ステッカー
  • id_user_from
  • id_user_to

これは私の現在の SQL 呼び出しです。

SELECT
    u.id_user,
    u.name,
    p.filename,
    s.id_sticker,
    FROM user AS u
    LEFT JOIN user_picture AS p ON p.id_user = u.id_user
    LEFT JOIN user_sticker AS s ON s.id_user_to = u.id_user
WHERE u.id_user = 1
ORDER BY (SELECT COUNT(*) FROM user_sticker AS s2 WHERE s2.id_user_to = u.id_user AND s2.id_sticker = s.id_sticker) 

特定のユーザーの最も一般的な受信ステッカーと、ユーザーの最初の利用可能な画像 (ord = 1 を持つもの) を取得する必要があります。ユーザーは、多くのステッカー (および繰り返しのステッカー) と多くの写真を持つことができます。

4

1 に答える 1

1

ここにSQLがあります:

select
    u.id_user,
    u.name,
    (select p.filename from user_picture as p where p.id_user=u.id_user and ord=1) as userpicture,
    (select max(s.id_sticker) from user_sticker as s where s.id_user_to=u.id_user) as userstickerid
from user as u
where u.id_user = $$$$
于 2013-10-14T23:06:33.813 に答える