【问题标题】:SELECT all rows from table and All related rows from linked table从表中选择所有行和从链接表中选择所有相关行
【发布时间】:2017-08-29 12:12:20
【问题描述】:

是否有一个查询可以根据 ID 返回主表中的所有行以及相关表的所有行。相关表可能具有来自主表的相同 ID 的多行。 目前我从主表中获取所有行,然后循环遍历并使用函数从相关表中获取行。这有效,但似乎不是特别有效。

SELECT * FROM primaryTable 
AND (SELECT * FROM tableImages) as Images 
AND (SELECT * FROM tblReviews) as Reviews

这需要像这样输出为JSON...

{id: 1
name:"name1",
address:"address1",
reviews:{reviewID:25,review:"reviewText", reviewID:38,"reviewText2"},
images:{imageID:1234, file"file1.jpg",imageID:3456, file:"file3.jpg"},
latitude:12.3456,
longitude:34.5678
},
{id: 2
name:"name2",
address:"address2",
reviews:{reviewID:29,review:"reviewText", reviewID:57,"reviewText2"},
images:{imageID:12, file"file1.jpg",imageID:34, file:"file3.jpg"},
latitude:12.3456,
longitude:34.5678
}

【问题讨论】:

  • 尝试使用连接
  • 继续阅读 JOIN。
  • 试过这个,但似乎需要更长的时间 SELECT * FROM tblMarkers LEFT OUTER JOIN tblImages ON tblMarkers.ID = tblImages.ID LEFT OUTER JOIN tblReviews ON tblMarkers.ID = tblReviewsID

标签: mysql json pdo


【解决方案1】:

您必须为此使用连接,示例查询如下所示

SELECT * FROM primaryTable ptable INNER JOIN secondTable stable WHERE ptable.id = stable.id

只需将其复制到您的 sql 编辑器并替换为您的表即可

你可以参考加入here

【讨论】:

  • 单独加入将返回一个与提供的示例不太接近的数组
  • 你能用示例解释一下查询吗
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-04-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-05
相关资源
最近更新 更多