如何为我的临时表中的所有值合并过程值?

时间:2019-06-10 11:12:15

标签: mysql

我有一个跟随者表,其中包含一个fk_usr_id和fk_usr_chef_id。 我想返回用户最喜欢的厨师的厨师数据。这些数据包含姓名,地址,厨师的经验……按照我编写的过程,我已经可以为一位厨师获得此数据。因此,我需要遍历用户最喜欢的Chef_id,并为每个ID调用它。

  1. 我发现了如何制作一个临时表,其中包含用户正在关注的所有chef_id(因为MySQL没有数组变量)

  2. 我写了一条语句,该语句返回一位厨师的chef_data

  3. 显然,您不能在函数内部使用过程,而函数只能返回一个值。因此,不能使用我为一位厨师返回一行的书面程序。 因此,我为chefdata创建了一个具有所有所需列的临时表。如何为每个厨师插入此数据?还是合并所有select语句更好?

临时表

[[0, 1], [2, 3], [2, 4]]

声明返回一张单子的数据

CREATE TEMPORARY TABLE
IF NOT EXISTS myFavChefsIds
  AS (SELECT fk_usr_chef_id as chef_id FROM followers WHERE fk_usr_id = 10217728406738088)

使用常用支票的数据返回表格的步骤:

SELECT * FROM ( SELECT * FROM users u
       INNER JOIN zipcodes z ON u.fk_zip_id = z.zip_id
       WHERE usr_id = id
       GROUP BY usr_firstname, usr_lastname) AS D
LEFT JOIN ( SELECT
              fk_usr_chef_id,
              count(DISTINCT fk_mls_id) as mls_cooked,
              count(*) as ord_finished,
              round(sum(rat_weight)/count(rat_weight),1) as avg_rating
       FROM ratings r
       RIGHT JOIN orders o ON o.fk_rat_id = r.rat_id
       LEFT JOIN meals m ON o.fk_mls_id = m.mls_id
       WHERE mls_date<now()
         AND o.fk_usr_cons_id IS NOT null
         AND fk_usr_chef_id = id) AS E
ON D.usr_id = E.fk_usr_chef_id;

我想为每位最喜欢的厨师返回一行表格。该行包含我的过程仅返回一名厨师的所有数据。

做什么最好,怎么做? -如果列相同,是否可以在另一个表中插入SELECT的行? -我可以为每位厨师选择一行。如果我事先不知道要对UNION进行多少选择,我可以对所有这些行进行UNION吗?

0 个答案:

没有答案