Вы имеете в виду UNION
?
SELECT * FROM table1
UNION SELECT * FROM table2 ORDER BY RAND() LIMIT 5;
Обновление : пересмотренный ответ после изменения вашего вопроса:
SELECT field1 FROM table1
UNION SELECT field2 FROM table2 ORDER BY RAND() LIMIT 5;
Насколько я понимаю, вам просто нужно одно поле из каждой таблицы.Если вам нужно несколько из них, вы можете перечислить их: field2, field2, ..., если количество полей одинаково в обоих SELECT.
Обновление 2 : хорошо, я думаю, теперь я понимаю, что вы имеете в виду.Вот (грязный) способ сделать это, я уверен, что кто-то может предложить более элегантное решение:
SET @num1=0, @num2=0;
SELECT t1.field1, t2.field2
FROM (
SELECT field1, @num1:=@num1+1 AS num
FROM table1
) AS t1
INNER JOIN (
SELECT field2, @num2:=@num2+1 AS num
FROM (
SELECT field2
FROM table2
ORDER BY RAND()
LIMIT 5
) AS t
) AS t2
ON t1.num = t2.num;