我需要根据请求ID获得1个帖子,结构如下:

postId;

postTitle;

postContent;

postImage;

bandName;

genreName;

标签:[tagId,tagName];

评论:[commentId,commentBody,commentCreatedAt] .

表结构:

个帖子(id,title,content,image,band_id,timestamps);

标签(id,name);

post_tag(post_id,tag_id);

comments(id,body,post_id,user_id,timestamps) .

我尝试了不同的查询变体,例如:

$post = DB::table('posts as p')

->select('p.id as postId',

'p.title as postTitle',

'p.content as postContent',

'p.image as postImage',

'b.name as bandName',

'g.name as genreName',

DB::raw("(SELECT t.id as tagId, t.name as tagName

FROM tags as t

JOIN post_tag as pt ON t.id = pt.tag_id

WHERE pt.post_id = $request->postId

GROUP BY tagId) as tags"))

->join('bands as b', 'b.id', 'p.band_id')

->join('genres as g', 'g.id', 'b.genre_id')

->where('p.id', $request->postId)

->groupBy(

'postId',

'postTitle',

'postContent',

'postImage',

'bandName',

'genreName')

->get();

但我卡住了标签((它返回错误:SQLSTATE [21000]:基数违规:1241操作数应该包含1列或其他 . )

如何获得帖子的标签(评论的查询将类似)?无法处理此类嵌套查询((我感谢任何帮助 .

Update 1.

尝试:

$post = DB::table('posts as p')

->select('p.id as postId',

'p.title as postTitle',

'p.content as postContent',

'p.image as postImage',

'b.name as bandName',

'g.name as genreName',

't.id as tagId',

't.name as tagName')

->join('post_tag as pt', 'p.id', 'pt.post_id')

->join('tags as t', 't.id', 'pt.tag_id')

->join('bands as b', 'b.id', 'p.band_id')

->join('genres as g', 'g.id', 'b.genre_id')

->where('p.id', $request->postId)

->groupBy(

'postId',

'postTitle',

'postContent',

'postImage',

'bandName',

'genreName',

'tagId')

->get();

结果:

[{

"postId",

"postTitle",

"postContent",

"postImage",

"bandName",

"genreName",

"tagId",

"tagName"

},{

"postId",

"postTitle",

"postContent",

"postImage",

"bandName",

"genreName",

"tagId",

"tagName"

}]

所以, "postId","postTitle","postContent","postImage","bandName","genreName" are duplicated((

java构造方法嵌套,laravel查询构建器中的嵌套查询相关推荐

  1. Laravel56查询构建器中的increment和decrement用法

    假如现在有个需求是:用你账户余额去购买一个商品 基本逻辑是 :余额-物品单价 = 最新余额  :然后把最新余额获得后更新数据库中对应余额字段 但是laravel56的查询构建器中提供了更高效更简单的方 ...

  2. python kotlin_用Java和Python模仿Kotlin构建器

    python kotlin 介绍 Kotlin可能现在是我最喜欢的语言,可能它提供的最酷的功能之一是基于几个功能构建的类型安全的生成器(稍后解释). 我发现自己真的很想在其他两种主要语言(Java和P ...

  3. 用Java和Python模仿Kotlin构建器

    介绍 Kotlin可能现在是我最喜欢的语言,并且它可能提供的最酷的功能之一是基于几个功能构建的类型安全的生成器(稍后解释). 我发现自己真的很想在其他两种主要语言(Java和Python)中使用此功能 ...

  4. bootstrap3 表单构建器_Knex - 灵活轻便的 Node.js SQL 查询构建器

    不管你承认与否,Node.js 都是一个后端语言平台.那么,操作数据库,这个后端最为常用的代码逻辑之一,Node.js 自然也需要拥有.我们当然也可以使用数据库驱动直接执行 SQL 语句,但我们往往需 ...

  5. 前提条件在模型构建器中的应用

    这次的模型依旧很简单,主要是介绍前提条件在模型构建器中的应用 新建模型我就不讲了,之前都说过 可参考:ArcGIS模型构建器操作案例--提取相关属性信息 首先先简单介绍一下这次模型的功能,就是我们要用 ...

  6. knex 单表查询_SQL查询构建器 knex.js

    授权协议: MIT 开发语言: JavaScript 操作系统: 跨平台 软件介绍 knex.js 是一个查询构建器,用于 PostgreSQL, MySQL 和 SQLite3.它设计灵活,轻便和有 ...

  7. 什么是计算机嵌套分类汇总,excel嵌套分类汇总 Excel表格中创建嵌套分类汇总和查看嵌套分类汇总明细的方法...

    excel嵌套分类汇总 Excel表格中创建嵌套分类汇总和查看嵌套分类汇总明细的方法,我们在工作中会遇到很多文章,像excel嵌套分类汇总这类问题应该大家也都遇到过吧,今天这篇excel嵌套分类汇总 ...

  8. java for 最后_Java的for循环中调用了查询服务,最后只打印了循环的最后一条数据(循环次数)次...

    问题描述 1.首先我查询了出来一个对象集合(包含1和2俩个对象) 2.利用上面集合中的某数据循环查询下一个表中的数据.(也就是for循环中调用了查询方法,返回一个对象) 3.在循环体中我需要用到第一次 ...

  9. powerbuilder中实现多线程同步查询_Power Query中的“追加查询”可以实现合并多个工作表和工作簿...

    文 /  雷哥   编辑  / 小鱼儿今天雷哥主要跟大家讲解下PQ中的追加查询.通过讲解合并工作表和工作簿,来实现深入理解PQ追加查询.01 PQ追加查询合并工作表 案例老板给我们发过来一个Excel ...

最新文章

  1. atoi,atol,strtod,atof
  2. 巨杉数据库:金融级数据库是怎样炼成的
  3. 2020 我的C++学习之路 C++PrimerPlus第五章课后习题
  4. 通用usb集线器驱动_多口充电、高速传输——ORICO晶锐系列7口集线器测评
  5. centos 虚拟机 使用串口_在VMware虚拟机环境下安装CentOS 7操作系统
  6. android 商品筛选_商品关联分析
  7. GitLab Docker 前端开发工具链
  8. 成也DP,败也DP(AFO?)
  9. MySQL优化步骤和my.cnf优化配置
  10. 解构领域驱动设计--思维导图
  11. js室内地图开发_微信小程序室内地图导航开发-微信小程序JS加载esmap地图
  12. 和极有家一起玩转智能家居——极有家未来之家合作招募
  13. Traffic Shifting
  14. 把自己做的网站进行app封包
  15. 深度学习项目实战——木薯叶图像识别与分类项目
  16. USB 设备驱动之设备接入梳理(六)
  17. 高考数学90分能学好计算机,高中数学,如何从90分以下突破120分?你必须做好这两个方面!...
  18. C++练习题:计算standard_deviation
  19. Linux磁盘格式化(mkfs、mkfs.xfs、mkfs.ext4)、Linux文件系统的校验(xfs_repair、fsck_ext4)
  20. 网站服务器欠费多久,服务器到期后多久释放

热门文章

  1. python语言程序设计基础答案第四章_《Python语言程序设计基础》第四章笔记
  2. php service locator,Yii源码解读-服务定位器(ServiceLocator)
  3. Mysql之drop、truncate和delete的区别
  4. libsvm java api文档_libsvm-javaAPI
  5. 越南qq飞车服务器不稳定,qq飞车帧数不稳定,有时候玩的很顺,有时候画面一顿一顿,帧数不稳,怎么处理?...
  6. 奠定了整个计算机科学的基础是什么,冯 诺依曼对计算机科学发展所作的贡献是什么...
  7. android 关于页面,解析android中的帮助、about、关于作者、HELP等提示页面
  8. nginx负载均衡策略upstream
  9. 【深度学习】深入浅出神经网络框架的模型元件(常用层和卷积层)
  10. python【蓝桥杯vip练习题库】ADV-359分解质因数