MYSQL从另一张表的每一行加入随机行

问题描述

我有两个表格:食品和配料(请参阅下面的图片1 )。

图片1

enter image description here

我希望将每种食物的成分随机化(可以是所有食物的重复成分)。也如何使用查询来检索价格?谢谢

我尝试使用下面的sql,但没有获得想要的结果(请参阅图片2 ),因为如果使用2015-08-01 2015-08-31 2015-08-10 2015-10-02 2015-10-05 2015-09-28 ,则所有行的成分保证相同。如果使用sample sql 1,价格也会随机分配,与相应的配料不匹配。

sample sql 2

图片2

enter image description here

解决方法

如果您正在运行MySQL 8.0,则可以为此使用export interface Person { name: string; email: string; dob: string; address: string; number: string; userName: string; pssw: string; };

row_number()
,

这也适用于旧版本的MySQL数据库。

SELECT food,indeg,MAX(rn)
FROM (
       SELECT x.*,@rn := @rn + 1 AS rn
       FROM ( SELECT f.description AS food,i.description AS indeg
              FROM Foods f
              JOIN Ingredients i
              ORDER BY RAND()
             ) x
       JOIN (SELECT @rn := 0) r
    ) a
GROUP BY food