2013-07-21 74 views
0

我有內部調用三個表的SQL數據庫返回隨機結果...從三個SQL表

Fruit Name 
Fruit Color 
Fruit Price 

我試圖從這些三個表中返回一個隨機結果給我的例子。 ...

Apple - Green - $10 

目前我運行下面的PHP三次(用不同的表中的每個)

$result = mysqli_query($con,"SELECT * FROM fruitname"); 
while($row = mysqli_fetch_array($result)) 
    { 
    echo $row['fruitname']; 
    } 
這樣做

這工作正常,但我得到的感覺是我錯誤的方式。有沒有辦法做到這一點,而不是三個?

+1

那不是隨機的 –

回答

2

如果你真的想要一個隨機行,你可以這樣來做:

select * 
from (select * from FruitName order by rand() limit 1) fn cross join 
    (select * from FruitColor order by rand() limit 1) fc cross join 
    (select * from FruitPrice order by rand() limit 1) fp 

這將返回所有字段一行。

請注意,隨機行與任意行有很大不同。隨機行確實意味着每行有相同的選擇機會。任意一行只是不確定的。沒有order byselect中的第一行是任意的,但絕對不是隨機的。