当前位置: 首页 > 面试题库 >

MySQL JOIN / GROUP_CONCAT第二张表?

谢奕
2023-03-14
问题内容

所以我有这个查询,完美地工作:

SELECT users.*,
GROUP_CONCAT(categories.category_name) AS categories
FROM users
LEFT OUTER JOIN user_categories ON users.user_id = user_categories.user_id
LEFT OUTER JOIN categories ON user_categories.category_id = categories.category_id
WHERE users.user_city = 'brooklyn'
GROUP BY users.user_id
LIMIT 10;

假设我还有一个包含电话号码的表,对于“用户”来说,用户可以有任意数量的电话号码…我该如何处理与类别完全相同的事情?换句话说,我想获得另一列,其中包含在“电话”表中找到的所有具有相同“
user_id”的phone_numbers,并将它们连接在一起(phone1,phone2,phone3)?我试过了:

SELECT users.*,
GROUP_CONCAT(phones.phone_number) AS phone_numbers,
GROUP_CONCAT(categories.category_name) AS categories
FROM users
LEFT OUTER JOIN phones ON users.user_id = phones.user_id
LEFT OUTER JOIN user_categories ON users.user_id = user_categories.user_id
LEFT OUTER JOIN categories ON user_categories.category_id = categories.category_id
WHERE users.user_city = 'brooklyn'
GROUP BY users.user_id
LIMIT 10;

运气不好…或者至少执行了查询,但是它做了一些奇怪的重复操作…任何帮助都将非常棒!

谢谢!


问题答案:

它确实很奇怪,因为某些行的叉积。您可以使用DISTINCT关键字仅获取唯一的电话号码:

GROUP_CONCAT(DISTINCT phones.phone_number) AS phone_numbers,

检查文档。或者,您可以在另一个查询中获取电话号码,在该查询中,您仅选择条件为WHERE phones.user_id IN (x, x, x, ...)(x是从第一个查询返回的ID)的电话号码。



 类似资料:
  • 本文向大家介绍在单个MySQL查询中使用两个SELECT语句将值从第一张表插入第二张表,包括了在单个MySQL查询中使用两个SELECT语句将值从第一张表插入第二张表的使用技巧和注意事项,需要的朋友参考一下 若要使用两个SELECT语句将值从第一个表插入另一个表,请使用SUBQUERY。这将允许您仅使用单个MySQL查询来获取第二个表中的结果。让我们首先创建一个表- 使用插入命令在表中插入一些记录

  • 问题内容: 我有数据库,已经创建了一个表,现在 我想在该数据库中创建第二个表()。我的问题是如何在现有数据库中添加此表?我有以下代码。任何帮助表示赞赏。 此代码不会创建第二个表。我想要数据库中的两个表。 它在logcat中显示以下错误。 问题答案: 制作另一个String,然后在您的中,再次调用: 编辑 要将另一个表添加到已存在的数据库中,请按如下所示修改您的方法。每当需要升级数据库时都会调用;请

  • 本节将帮助您一步一步创建一张地图。该地图的最终效果如下。 分享链接:http://d.dituzhe.com/ShareMap/0EB1C2 1 地图分析 该地图包含两个图层,一个是点图层,指我们的店铺信息。一个是面图层,指我们的销售区域。下面将介绍如何创建这些数据,以及如何将这些数据添加到地图中,并设置数据的显示样式。 2 创建店铺数据 点击首页的“数据管理”页面,进入后点击“新增数据”按钮 在

  • 我试图在没有预览的情况下配置相机兼容性,但在拍摄第二张照片后,应用程序异常崩溃: 2018-12-27 14:36:20.392 123 89-12977/com.example.android.braillefeedere/requestThread-0:捕获调用期间收到设备异常:java.io.ioException:setPreviewTexture在Android.hardware.cam

  • 下面的错误 第一张照片出来了。当我滑动屏幕,第二张图片出来,然后崩溃。 ImageView.SetImageResource(img[position]);行显示错误。

  • 问题内容: 我有一张桌子,像: 我试过了: 但我想按顺序获取视图,例如: 问题答案: 您可以通过以下方式在函数内部使用: