可能重复:
Join two tables in MySQL with random rows from the second加入两个表中的MySQL,但随机只第二个表
所以我有两个表:
首先表有5行,我想以与它们在表中相同的顺序选择所有5行。
第二个表格有800行,从那里随机选择只有5行。
然后加入两个表,但保留第一个表的顺序,只是随机化第二个表的结果。
我尝试了不同的查询,但当我加入两个表时,我无法保持第一个表的结果顺序。
可能重复:
Join two tables in MySQL with random rows from the second加入两个表中的MySQL,但随机只第二个表
所以我有两个表:
首先表有5行,我想以与它们在表中相同的顺序选择所有5行。
第二个表格有800行,从那里随机选择只有5行。
然后加入两个表,但保留第一个表的顺序,只是随机化第二个表的结果。
我尝试了不同的查询,但当我加入两个表时,我无法保持第一个表的结果顺序。
为了从字面上做你问什么:
select * from first left join (select * from second order by rand() limit 5) on first.??=second.??;
然而,我怀疑是从第二个表,你不要换成五个完全随机的结果,但在第一个表中的每个条目一个随机结果(有一些连接条件)。
请在你的other question上看到我的回答,并避免重复的问题,你不会得到更好的质量答案!
SET @num1=0, @num2=0;
SELECT t1.field1, t2.field2
FROM (
SELECT field1, @num1:[email protected]+1 AS num
FROM table1
) AS t1
INNER JOIN (
SELECT field2, @num2:[email protected]+1 AS num
FROM (
SELECT field2
FROM table2
ORDER BY RAND()
LIMIT 5
) AS t
) AS t2
ON t1.num = t2.num;
我不需要一个条件,但是我需要第一个表中每个条目的第二个表的一个随机结果。 我试过你的查询但没有工作。 – Danny 2011-06-06 09:46:29