首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL只返回1行数据库中的多个条目

MySQL只返回1行数据库中的多个条目
EN

Database Administration用户
提问于 2014-04-30 19:39:19
回答 1查看 12.9K关注 0票数 1

我正在为员工创建一个所有出版物的列表,并且我目前正在执行一个查询。它运行时没有语法错误,但它只返回一行。有关表格的ERD如下:

在出版物与员工、出版物发布标签以及出版物和出版物类型之间存在着多到多的关系.每个出版物必须至少有一个标签和一个类型。

查询

代码语言:javascript
复制
SELECT publicationsId, title, summary, image, publicationDate, citation, dateAdded, GROUP_CONCAT(DISTINCT tagName) AS tagName, GROUP_CONCAT(DISTINCT publicationType) AS publicationType, employee_employeeId
FROM publications
LEFT JOIN publications_have_publicationTags ON publications_have_publicationTags.publications_publicationsId = publications.publicationsId
LEFT JOIN publicationTags ON publications_have_publicationTags.publicationTags_publicationTagId = publicationTags.publicationTagId
LEFT JOIN publications_have_publicationTypes ON publications.publicationsId = publications_have_publicationTypes.publications_publicationsId
LEFT JOIN publicationTypes ON publications_have_publicationTypes.publicationTypes_publicationTypeId = publicationTypes.publicationTypeId
LEFT JOIN employee_has_publications ON publications.publicationsId = employee_has_publications.publications_publicationsId
ORDER BY dateAdded DESC

额外信息

我最初使用的是同样效果的INNER JOIN。我在网站上使用PDO,但在phpmyadmin中运行查询时得到了相同的结果。

如何在一个查询中获取出版物信息及其相关标记和类型?或者我应该运行单独的查询来消除复杂性?

EN

回答 1

Database Administration用户

回答已采纳

发布于 2014-04-30 19:55:34

您的select语句包括group_concat()。这是一个聚合函数。因为没有group by,这意味着所有行都被视为一个组,因此返回一行。

也许你的意思是:

代码语言:javascript
复制
SELECT publicationsId, title, summary, image, publicationDate, citation, dateAdded,
       GROUP_CONCAT(DISTINCT tagName) AS tagName,
       GROUP_CONCAT(DISTINCT publicationType) AS publicationType,
       employee_employeeId
FROM publications
LEFT JOIN publications_have_publicationTags ON publications_have_publicationTags.publications_publicationsId = publications.publicationsId
LEFT JOIN publicationTags ON publications_have_publicationTags.publicationTags_publicationTagId = publicationTags.publicationTagId
LEFT JOIN publications_have_publicationTypes ON publications.publicationsId = publications_have_publicationTypes.publications_publicationsId
LEFT JOIN publicationTypes ON publications_have_publicationTypes.publicationTypes_publicationTypeId = publicationTypes.publicationTypeId
LEFT JOIN employee_has_publications ON publications.publicationsId = employee_has_publications.publications_publicationsId
GROUP BY publicationsId, title, summary, image, publicationDate, citation, dateAdded, emplyee_employeeid
ORDER BY dateAdded DESC;
票数 3
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/64308

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档