Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将联接查询的结果聚合到列表中_Python_Mysql - Fatal编程技术网

Python 将联接查询的结果聚合到列表中

Python 将联接查询的结果聚合到列表中,python,mysql,Python,Mysql,让我缩短我的需求,并通过一个例子来理解它 假设我有两张桌子 表1=书籍 Id:名称:Lcode 1:book1:101 2:book2:102 3:book1:102 表2=语言 Lcode:lname 101:嗯 102:fr 现在我在mysql中使用这些数据,使用flask返回json 我有很多这样的表,其中我需要对10个这样的表的某些列应用一些过滤条件 在输出中,我希望每一行都是这样的,如果它有多个值,那么它应该以列表的形式出现 如果我想知道书的名字和语言 第一册:[英、法] Boook2

让我缩短我的需求,并通过一个例子来理解它

假设我有两张桌子 表1=书籍

Id:名称:Lcode

1:book1:101

2:book2:102

3:book1:102

表2=语言

Lcode:lname

101:嗯

102:fr

现在我在mysql中使用这些数据,使用flask返回json

我有很多这样的表,其中我需要对10个这样的表的某些列应用一些过滤条件

在输出中,我希望每一行都是这样的,如果它有多个值,那么它应该以列表的形式出现

如果我想知道书的名字和语言

第一册:[英、法]

Boook2:嗯

目前,我正在使用一个基本的select查询,在列lcode上使用内部联接 我从中得到的输出是

第一册:英语

第一册:fr

第二册:英语

如果我使用

Select b.name,l.lname from books b inner join language l on l.lcode=b.lcode group by b.name
Select b.name,l.lname from books b inner join language l on l.lcode=b.lcode group by b.name,l.lname 
这将是一个错误的sql语句

如果我使用

Select b.name,l.lname from books b inner join language l on l.lcode=b.lcode group by b.name
Select b.name,l.lname from books b inner join language l on l.lcode=b.lcode group by b.name,l.lname 

这不会给我正确的结果

GROUP\u CONCAT
可能就是你想要的

设置

create table book(
id串行主键,
名称文本,
语言id int
);
创建表语言(
id串行主键,
名称文本
);
在账簿中插入(名称、语言id)值('book1',1),('book2',2),('book1',2);
插入语言(名称)值('en')、('fr');
质疑

选择
b、 名字,
组_CONCAT(l.name)作为语言
从…起
b册
b.language_id=l.id上的内部连接语言l
按b.name分组
结果

name    languages
book1   en,fr
book2   fr

在加入的查询上使用
groupby
“分组依据”的问题是,我需要在“分组依据”中包含所有列,这些列在SELECT中。我总共有10个表,当所有列合并在一起时,我需要从中选择8-9列。b.book\u id,l、 来自books\u book\u languages b内部连接books\u language l on b.language\u id=l.id group by b.book\u id我显然无法使用此查询,使用此选项选择b.book\u id,l.code from books\u book\u languages b内部连接books\u language l on b.language\u id=l.id group by b.book\u id,l、 代码不会给出期望的结果你肯定解决了我的问题,我从来不知道这样的函数存在