2012-06-27 60 views
0

我想創建一個SQL查詢,選擇 我的數據庫中的女性圖片,然後隨機選擇圖片之後,選擇男性圖片比隨機他們。例如,有40張女孩照片和60張男孩照片。我想選擇前40名女孩的照片(洗牌,然後剩餘的男孩圖片被選中(洗牌)SQL查詢創建結合兩個表和洗牌結果

希望我很清楚我有兩個表「userID」字段是鏈接兩個表的那個。

用戶表(年齡,用戶名,性別)|圖片表(用戶ID, numberoflikes,picure_location)

反正我有可能會產生這個查詢

回答

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

您可能需要ORDER BY GENDER DESC, RAND(),具體取決於您如何表示性別。

0

請嘗試以下:

SET @num1=0, @num2=0; 
SELECT t1.*, p1.picturelocation,t2.*, p2.picturelocation 
FROM (
    SELECT UserID,gender, @num1:[email protected]+1 AS num 
    FROM UserTable WHERE gender='Female' 
) AS t1 
INNER JOIN (
    SELECT UserID,gender, @num2:[email protected]+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;