我遇到了一个类似于将多个表中的数据合并到单行中的问题,同时连接一些值,但我不能理解它,而且我是sql查询的新手。我有很少的表,我必须将它们连接起来,并在一行中得到一些串联的数据。说明如下:
Table 1 - tasks(id,title,user_id) id title user_id tree_id -- ----- ------- ------- 1 test task 1 20 Table 2 - task_follower(id,user_id,task_id) id user_id task_id -- ------- ------- 1 1 1 Table 3 - account_user(id,name,email) id name email -- ---- ----- 1 rakesh kumar3180@gmail.com Table 2 - category(id,category) id category -- ------- 1 Project1 Table 2 - task_category(id,user_id,task_id) id task_id category_id -- ------- ------- 1 1 1
而我运行的查询是:
SELECT a.*, GROUP_CONCAT(b.name SEPARATOR ',') AS member_names, GROUP_CONCAT(b.email SEPARATOR ',') AS member_emails, GROUP_CONCAT(DISTINCT d.category) SEPARATOR ',') AS categories FROM tasks AS a INNER JOIN task_followers AS c ON a.id = c.task_id INNER JOIN account_user AS b ON c.user_id = b.id INNER JOIN task_category AS i ON a.id = i.task_id INNER JOIN category AS d ON i.category_id = d.id WHERE a.id = 1 AND a.user_id = 1 AND GROUP BY a.id
这个查询的结果是:
id title user_id tree_id member_names member_emails --- ----- ------- ------- ------------- ------------- 1 test task 1 20 rakesh,rakesh kumar3180@gmail.com,kumar3180@gmail.com
我不明白为什么名字和电子邮件是重复的?请帮我解决这个问题,也请你解释一下我在概念上哪里出了问题?
我注意到,当与任务关联的类别数超过一个时,就会出现这个问题。请查看http://sqlfiddle.com/#!2/B96eb/1我在那里创建了一个示例来演示我的问题。
您可以在group_concat
中使用distinct
,如下所示:
GROUP_CONCAT(DISTINCT b.email SEPARATOR ',') AS member_emails
我试图将三列作为一个字符串,但由于某些原因,我只得到NULL。 以下是代码: places表包含name、city和country三列,它不是空的,但在某些列中可以包含NULL。 结果是: 我试着从这篇帖子中得到答案,如果任何字段包含NULL,MySQL CONCAT将返回NULL,但它对我不起作用。
问题内容: 我有一个查询,返回以下行: StateId,OrderId,OrderTime,PermitId 我只需要返回全盘完全重复的行,因此每条记录必须与另一条记录完全相同,这样它才可以重复。我想退回两个记录。这些记录与一堆没有重复的记录混在一起… 任何的想法? 问题答案: 首先,确定重复项。其次,重新加入以提取这些行。 非聚集(或非窗口/排名)自连接形成部分交叉连接,并为任何一组键给出重复的
我有下面的代码 我的期望是,若map中并没有值(数组),它将返回对新创建的数组的引用,我可以将我的“值”添加到该数组中。 然而,我看到myContext地图是空的。似乎超级基本,我不明白。
我遇到了一个类似于将多个表中的数据合并到单行中的问题,同时连接一些值,但我不能理解它,而且我是sql查询的新手。我有很少的表,我必须将它们连接起来,并在一行中得到一些串联的数据。说明如下: 而我运行的查询是: 这个查询的结果是: 我不明白为什么名字和电子邮件是重复的?请帮我解决这个问题,也请你解释一下我在概念上哪里出了问题? 我注意到,当与任务关联的类别数超过一个时,就会出现这个问题。请查看htt
问题内容: 我正在运行的程序在这里上差异的物理机器2级的JVM。我得到了错误 我什至尝试在同一台机器(未更改的程序)上运行它,但是它可以在diff机器上运行。有人可以帮我吗? @ beny23-谢谢,但我仍然遇到此错误: 客户端如何拥有CalculatorImpl_stub的副本? 问题答案: 听起来您没有使用安全管理器: 您是否有政策文件(): 并使用运行您的程序
问题内容: 我想从数组中检索所有重复的条目。这在PHP中可行吗? 我想返回一个仅包含重复值的数组:“ hello”。 所需的输出数组: 问题答案: 您需要使函数不区分大小写,以获取所需的“ Hello” =>“ hello”结果,请尝试以下方法: 输出为: 通过@AlixAxel编辑: 这个答案很有误导性。它仅在此特定条件下有效。这个反例: 惨败 。另外,这不是保留重复项的方法: 由于重复的值之一