2017-04-04 88 views
0

是否有一个查询将根据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 
} 
+2

尝试使用加入 –

+1

去阅读了关于连接。 – CBroe

+0

试过,但似乎 LEFT OUTER JOIN tblImages ON tblMarkers.ID = tblImages.ID LEFT OUTER JOIN tblReviews ON tblMarkers.ID = tblReviewsID – lifeson

回答

-1

你必须使用加入此,示例查询显示如下

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

只需将其复制到您的SQL编辑器,并与你的表格代替它会工作

你可以参考加入here

+0

到需要更长的时间SELECT * FROM tblMarkers单独JOIN将返回一个数组,它是不是几乎接近您提供的示例 –

+0

您能否解释带有示例的查询 – vcode

相关问题