【发布时间】: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