0

データベース内の女性の写真を選択し、その後、男性の写真をランダム化するよりもランダム化するSQLクエリを作成したいと思います。たとえば、女の子の写真が40枚、男の子の写真が60枚あります。最初の40枚の女の子の写真を選択してほしい(シャッフルしてから、残りの男の子の写真を選択(シャッフル))

私が明確であることを願っています。2つのテーブルがあります。「userID」フィールドは、両方のテーブルをリンクするものです。

ユーザーテーブル(年齢、ユーザーID、性別)| 画像テーブル(UserID、numberoflikes、picure_location)

とにかくこのクエリを生成できますか?

4

2 に答える 2

2
SELECT picure_location
FROM Picture
  INNER JOIN User ON Picture.UserID=User.UserID
ORDER BY gender,RAND()

ORDER BY GENDER DESC, RAND()性別をどのように表現するかによっては、必要になる場合があります。

于 2012-06-27T02:54:46.097 に答える
0

以下をお試しください。

SET @num1=0, @num2=0;
SELECT t1.*, p1.picturelocation,t2.*, p2.picturelocation 
FROM (
    SELECT UserID,gender, @num1:=@num1+1 AS num
    FROM UserTable WHERE gender='Female'
) AS t1
INNER JOIN (
    SELECT UserID,gender, @num2:=@num2+1 AS num
    FROM (
        SELECT *
        FROM UserTable WHERE gender='Male'
        ORDER BY RAND()
        LIMIT 40
    ) AS t
) AS t2
ON t1.num = t2.num 
INNER JOIN PictureTable p1 on t1.userid=p1.userid 
INNER JOIN PictureTable p2 on t2.userid=p2.userid;
于 2012-06-27T03:48:55.657 に答える