我想創建一個SQL查詢,選擇 我的數據庫中的女性圖片,然後隨機選擇圖片之後,選擇男性圖片比隨機他們。例如,有40張女孩照片和60張男孩照片。我想選擇前40名女孩的照片(洗牌,然後剩餘的男孩圖片被選中(洗牌)SQL查詢創建結合兩個表和洗牌結果
希望我很清楚我有兩個表「userID」字段是鏈接兩個表的那個。
用戶表(年齡,用戶名,性別)|圖片表(用戶ID, numberoflikes,picure_location)
反正我有可能會產生這個查詢
我想創建一個SQL查詢,選擇 我的數據庫中的女性圖片,然後隨機選擇圖片之後,選擇男性圖片比隨機他們。例如,有40張女孩照片和60張男孩照片。我想選擇前40名女孩的照片(洗牌,然後剩餘的男孩圖片被選中(洗牌)SQL查詢創建結合兩個表和洗牌結果
希望我很清楚我有兩個表「userID」字段是鏈接兩個表的那個。
用戶表(年齡,用戶名,性別)|圖片表(用戶ID, numberoflikes,picure_location)
反正我有可能會產生這個查詢
SELECT picure_location
FROM Picture
INNER JOIN User ON Picture.UserID=User.UserID
ORDER BY gender,RAND()
?
您可能需要ORDER BY GENDER DESC, RAND()
,具體取決於您如何表示性別。
請嘗試以下:
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;