在MS SQL Server中,这个查询正常运行:
在mySQL中,这个查询运行非常慢 - 并且随着添加更多的子查询,性能会继续降低。我相信这与底层操作顺序有关,但我的问题是如何优化此查询?如何将第二个表中的所有值旋转到结果集中的列中?希望这不必通过多个JOIN语句来完成(因为我不太理解JOIN)。
SELECT column1
, (SELECT RelatedColumn1 FROM tbl_related WHERE record_id=a1.record_id) AS pseudocolumn1
, (SELECT RelatedColumn2 FROM tbl_related WHERE record_id=a1.record_id) AS pseudocolumn2
, (SELECT RelatedColumn3 FROM tbl_related WHERE record_id=a1.record_id) AS pseudocolumn3
, (SELECT RelatedColumn4 FROM tbl_related WHERE record_id=a1.record_id) AS pseudocolumn4
... [20 or more subqueries here] ...
FROM tbl_primary a1
在mySQL中,这个查询运行非常慢 - 并且随着添加更多的子查询,性能会继续降低。我相信这与底层操作顺序有关,但我的问题是如何优化此查询?如何将第二个表中的所有值旋转到结果集中的列中?希望这不必通过多个JOIN语句来完成(因为我不太理解JOIN)。
RelatedColumn1
实际上与RelatedColumn2
在不同的行上?*[如果现有答案不能满足您的需求,也许您可以提供两个示例表的结构?]* - MatBailie