[英]Select random rows from one MYSQL table with join
下午的人們,
我已經四處挖掘,找不到答案,所以是時候問了!
我想從一個表中選擇隨機行,然后從另一個表中加入我具有相同ID的該隨機行。 僅選擇我在第二張表中的位置也是很好的選擇。 我已經嘗試過各種方式的子查詢,但是有點迷路了。 讀取的內部聯接將完成此操作,但是再次具有全部隨機性! 哎呀...
SELECT
tracks.track_id,
cuttings.square_cutting,
cuttings.cutting_2,
cuttings.cutting_3,
cuttings.blog_text
FROM tbl_tracks tracks,
(SELECT
square_cutting,
cutting_2,
cutting_3,
blog_text
FROM
tbl_cuttings
WHERE track_id = tracks.track_id <-- wont find it, obviously!!
ORDER BY RAND()
LIMIT 1) cuttings
WHERE tracks.active = '1' ORDER BY RAND()
在此先感謝您的幫助。
所以:我想要顯示軌道ID的隨機軌道->帶有隨機剪切,其中可以有很多,但我只想要1。
這樣,僅在與該音軌相關聯的切割時才顯示結果將是理想的。
希望能有所幫助。
我現在正嘗試進一步,並通過RAND()種子對其進行排序,因為我現在必須添加分頁。 唯一的問題是由於給定的種子,它沒有給我返回相同的隨機列表。 有任何想法嗎?
SELECT
tracks.track_id,
cuttings.square_cutting,
cuttings.cutting_2,
cuttings.cutting_3,
cuttings.blog_text
FROM tbl_tracks tracks
INNER JOIN
(SELECT track_id,
square_cutting,
cutting_2,
cutting_3,
blog_text
FROM
tbl_cuttings
ORDER BY RAND()) cuttings ON tracks.track_id = cuttings.track_id
WHERE tracks.active = '1'
ORDER BY RAND(1)
LIMIT 0,4;
您可以使用內部聯接
SELECT
tracks.track_id,
cuttings.square_cutting,
cuttings.cutting_2,
cuttings.cutting_3,
cuttings.blog_text
FROM tbl_tracks tracks
INNER JOIN
(SELECT track_id,
square_cutting,
cutting_2,
cutting_3,
blog_text
FROM
tbl_cuttings
ORDER BY RAND()
LIMIT 1) cuttings on cuttings.track_id = tracks.track_id
WHERE tracks.active = '1'
ORDER BY RAND()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.