我有3张桌子。我只会写出我需要的行:
串行
-------------- | ID | views | -------------- | 1 | 12113 | -------------- | 2 | 34 | -------------- | 3 | 123 | --------------
SerialReal
---------------- | ID | sorceID | ---------------- | 12 | 1 | ---------------- | 14 | 3 | ---------------- | 15 | 2 | ---------------- | 16 | 4 | ----------------
SerialRealEpisode
--------------------- | ID | srID | status| --------------------- | 1 | 12 | 0 | --------------------- | 2 | 12 | 1 | --------------------- | 3 | 12 | 0 | ---------------------
我想要的是在RANDOM上获得一个SerialRealEpisode项目(LIMIT 1),状态为0.但是这个SerialRealEpisode项目需要来自Serial,即排在前三位的Serial,其中有一些串口,其中有SerialRealEpisode.status = 0随机是它来自前3个串行之一和这些序列中的所有剧集之一
有什么想法吗?如果您需要更多信息,请告诉我。谢谢!
答案 0 :(得分:2)
使用以下查询
SELECT views form Serial as se
INNER JOIN SerialReal as sr ON se.id=sr.sorceID
INNER JOIN SerialRealEpisode as sre ON sr.id=sre.srID
where sre.status=0
答案 1 :(得分:1)
请试试这个......
SELECT views FROM (
SELECT s.`views` FROM `serial` s INNER JOIN `serialreal` sr ON s.id = sr.`sourceid`
INNER JOIN `serialrealepisode` sre ON sre.`srid` = sr.`id`
WHERE sre.`status` = '0' GROUP BY s.`views` ORDER BY s.`views` DESC LIMIT 3
) AS tbl ORDER BY RAND() LIMIT 1
首先,我按降序选择前3个连续出版物,然后从内部查询的结果集中选择一个随机结果。
希望这会帮助你...