繁体   English   中英

Mysql - 一对多的单一查询

[英]Mysql - Single Query for One-To-Many

我有一个名为posts的表和另一个名为attachments表...

post可以有很多attachments ......

所以,我创建了一个名为post_attachment的中间表。

如何在单一查询中获取posts数据列表,包括attachments数据?

..

请参阅下面的内容,以便更清楚地了解......


以下是表格结构:

-

posts表有4列:

  1. ID
  2. 标题
  3. 文章主体

-

attachments表有3列:

  1. ID
  2. 文档名称
  3. FILE_URL

-

post_attachment表有2列:

  1. POST_ID
  2. FILE_ID

以下是具有多个attachmentspost的示例

posts表:

在此输入图像描述

-

attachments表:

在此输入图像描述

-

post_-attachment附表:

在此输入图像描述

在上面的例子中,它告诉post (ID:1)有3个attachments ,ID为1,2和3。

那么,问题是如何获取将在单个查询中包含posts.titleattachments.filenameattachments.file_url列的帖子列表?

您必须加入3个表:

select
  p.*, a.*
from post p
left join post_attachment pa on pa.post_id = p.id
left join attachments a on a.id = pa.file_id

如果帖子没有任何附件,则需要LEFT JOIN

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM