Mysql 随机连接3个表中的记录

Mysql 随机连接3个表中的记录,mysql,sql,relationship,Mysql,Sql,Relationship,我有三张桌子: categories (id) product_models(id, category_id) products(id, product_id, category_id) 每个表上都有记录(lorem ipsum内容),我想连接数据。 我已经更改了产品型号,正在执行以下查询: update product_models set category_id = (select id from categories order by RAND() limit 1) 如

我有三张桌子:

categories (id)
product_models(id, category_id)
products(id, product_id, category_id)
每个表上都有记录(lorem ipsum内容),我想连接数据。
我已经更改了产品型号,正在执行以下查询:

    update product_models
    set category_id = (select id from categories order by RAND() limit 1)

如何使用将所有产品映射到产品模型并更新类别的单个查询?

您应该适当地向表添加约束和引用,以便在更新一个表时,其他表也将更新。

假设第三个表结构为(id,product\u model\u id,category\u id),另一个假设是您有一个复合外键(product\u model\u id,category\u id),然后您必须更新第三个表,如下所示

UPDATE products P
INNER JOIN (SELECT id, category_id from product_models ) M
ON P.product_id = M.id
SET P.category_id = M.category_id

我理解并将着手解决这个问题,但在这个应用程序中,项目可能是孤立的。似乎这个查询只会更新产品与类别之间的一个连接。虽然这是一个答案,但我希望有一个查询可以连接所有3个表