【问题标题】:Join of three different mysql queries tables三个不同 mysql 查询表的连接
【发布时间】:2017-03-01 20:56:21
【问题描述】:

嘿,我是 php 和 mysql 的新手。这里想加入三个不同的要求。 这是我的疑问

查询1:

SELECT u.user_name,u.first_name 
FROM users u join users_cstm uc on u.id=uc.id_c 
WHERE u.deleted=0?

查询2:

SELECT l.assigned_user_id,count(*) AS lead_count 
FROM lead l GROUP BY l.assigned_user_id?

查询3:

SELECT l.assigned_user_id,AVG(DATEDIFF(l.date_modified,l.date_entered)) AS avgdays 
FROM leads l GROUP BY l.assigned_user_id?

等等..关于..

这是我正在寻找的结果 user_name、first_name、lead_count、avgdays。来自三个表。

BigQuery join of three tables

我已经从上面的链接尝试了我的解决方案。但我没有得到结果?

感谢您的帮助和建议。

【问题讨论】:

  • 你想要什么结果?
  • @reds,这是我正在寻找的结果 user_name、first_name、lead_count、avgdays。如果我执行此 SELECT u.user_name,u.first_name FROM users u join users_cstm uc on u.id=uc.id_c WHERE u.deleted=0,我将得到 user_name, first_name 的结果。
  • 那么您的查询有什么问题
  • @reds。我不知道如何在 mysql 中连接三个不同的查询。请帮帮我。

标签: mysql join mysqli inner-join mysqli-multi-query


【解决方案1】:

试试下面的查询:-

SELECT u.user_name,u.first_name,
lead_table.lead_count,lead_table.avgdays
FROM users u join users_cstm uc on u.id=uc.id_c
left join 
(SELECT l.assigned_user_id,
        AVG(l.date_modified) AS avgdays,
        count(*) AS lead_count 
FROM leads l GROUP BY l.assigned_user_id) lead_table
on u.id=lead_table.assigned_user_id
WHERE u.deleted=0;

【讨论】:

  • 谢谢它的工作。但我有更多的 10 多个条件的查询。我必须以同样的方式加入。
  • 这里是我的不同查询这里是列表。 $sql_query2 = "SELECT l.assigned_user_id,count() as lead_count FROM 引导 l 组按 l.assigned_user_id"; $sql_query3 = "SELECT l.assigned_user_id,AVG(DATEDIFF(l.date_modified,l.date_entered)) AS avgdays FROM 通过 l.assigned_user_id 引导 l 组"; $sql_query4 = "SELECT c.assigned_user_id,count() as calls_count FROM calls c group by c.assigned_user_id";等等。我想结合所有这些并获得单一的解决方案来显示值stackoverflow.com/questions/16364187/…
【解决方案2】:

试试这个:

SELECT id,user_name,first_name,lead_count,avgdays from
(SELECT id,user_name,first_name,lead_count from
(SELECT u.id,u.user_name,u.first_name FROM users u,users_cstm uc where  u.id=uc.id_c and u.deleted=0) as a

LEFT JOIN

(SELECT l.assigned_user_id,count(*) AS lead_count FROM lead l GROUP BY l.assigned_user_id) as b
on a.id = b.assigned_user_id) as a

LEFT JOIN 

(SELECT l.assigned_user_id,AVG(DATEDIFF(l.date_modified,l.date_entered)) AS avgdays 
FROM leads l GROUP BY l.assigned_user_id) as b
on a.id = b.assigned_user_id

【讨论】:

  • 我假设 id 和 assignment_user_id 都是相对约束。我假设它是一样的。如果我猜错了,您可以更改它。
  • 谢谢,我会运行这个查询。
  • 我没有得到任何结果。页面显示为空白。
  • 在此处添加您的表数据.. 我是 ryt id = assigned_user_id 吗?
猜你喜欢
  • 2012-05-02
  • 2013-07-13
  • 1970-01-01
  • 2021-07-07
  • 2015-09-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多