Mysql-一对多的单个查询

时间:2019-05-05 13:16:13

标签: mysql one-to-many

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

一个post可以有多个attachments ...

因此,我创建了一个名为post_attachment的中间表。

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

..

请参阅以下内容,以使您更清楚地了解...


以下是表格结构:

-

posts表有4列:

  1. id
  2. 标题
  3. body_text

-

attachments表具有3列:

  1. id
  2. 文件名
  3. file_url

-

post_attachment表有2列:

  1. post_id
  2. file_id

下面是一个post具有多个attachments

的示例

posts表:

enter image description here

-

attachments表:

enter image description here

-

post_-attachment表:

enter image description here

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

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

1 个答案:

答案 0 :(得分:0)

您必须加入3个表:

 private void canvasMousePressed(java.awt.event.MouseEvent evt) {                                    

    if(penClicked) {
        (penContainer.get(penCount)).startDrawing(canvas, evt);
        (penContainer.get(penCount)).setColor(color);
        penContainer.add(new Pen());
        penCount++;
  }

如果帖子中没有任何附件,则需要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