mysql - 选择查询问题而不是我想要的数据

标签 mysql sql

我有两个表,fathergrand_father

CREATE TABLE IF NOT EXISTS father (
    id INT AUTO_INCREMENT,
    father_name VARCHAR(255) NOT NULL,
    PRIMARY KEY (id)
);
CREATE TABLE IF NOT EXISTS grand_father (
    id INT AUTO_INCREMENT,
    father_id int(6) NOT NULL,
    grand_father_name VARCHAR(255) NOT NULL,
    PRIMARY KEY (id)
);
INSERT INTO father (id, father_name) VALUES
  ('1','Abid'),
  ('2','Hasan'),
  ('3','Jabed');
INSERT INTO grand_father (id, father_id,grand_father_name) VALUES
  ('1','1','Jon'),
  ('2','1','James'),
  ('3','2','Jakir'),
  ('4','2','Jamir'),
  ('5','3','Tom');

  select f.father_name,g.grand_father_name
from grand_father g
left join father f
on g.father_id = f.id;

+-------------+-------------------+
| father_name | grand_father_name |
+-------------+-------------------+
| Abid        | Jon               |
| Abid        | James             |
| Hasan       | Jakir             |
| Hasan       | Jamir             |
| Jabed       | Tom               |
+-------------+-------------------+

代码链接:http://sqlfiddle.com/#!9/8be4c/3 查询问题

我想要这样的结果:

+--------------+-------------------+
| father_name  | grand_father_name |
+--------------+-------------------+
|   Abid       | Jon               |
|              | James             |
+--------------+-------------------+
|   Abid       | Jon               |
|              | James             |
+--------------+-------------------+
|   Jabed      | Tom               |
+--------------+-------------------+

可不可以?
我怎样才能得到这样的结果。
我试试:

select f.father_name, g.grand_father_name 
from grand_father g 
left join father f 
  on g.father_id = f.id

最佳答案

使用 group_concat()

select f.father_name,group_concat(g.grand_father_name SEPARATOR '\r\n')
from grand_father g
left join father f
on g.father_id = f.id
group by f.father_name

关于mysql - 选择查询问题而不是我想要的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55142549/

相关文章:

mysql - 是否有任何版本的 SQL 允许这种连接?

SQL 过程 - 根据其他表的计数更改表列的值

php - MySQLi 语法不一致错误

php - Laravel5 Eloquent 查询什么都不返回,但原始查询却返回?

php - 了解数据库表的 JSON 输出

sql - 使用 RANK() OVER 计数时跳过空值

mysql - 创建唯一的 ID 组合

php - MySQL PHP 插入和更新

sql - 如何使用 TSQL 将文件上传到 SQL Server 2008 中的 varbinary(max) 列?

mysql - 带有 mysql 的 Entity Framework ,linux 和 windows 之间的表大写问题