【发布时间】:2011-09-22 17:32:53
【问题描述】:
我有一个 SQL 查询,它有一个包含连接的子查询。我想重写没有子查询的查询,以便我可以创建一个视图。 MySQL 不允许 FROM 是子查询的 SELECT 语句。
这可能吗?我已经尝试删除外部选择并在 subs 查询中移动组。这部分有效,但某些数据不正确。
select *
from (SELECT r.id, r.dateAdded, r.listingId, r.rating, r.username, r.valid, tbl_data.nameShort, tbl_data.desk, d.model, d.hardware, d.serial, l.appVersion, r.photoUrl, r.comment
FROM tbl_ratings r
JOIN tbl_data on r.listingId = vi_data.id
JOIN tbl_devices d on r.serial = d.serial
JOIN tbl_log l on l.serial = d.serial
ORDER BY d.serial, l.dateAdded DESC) x
group by id
order by dateAdded DESC
提前致谢!
【问题讨论】:
-
为什么不直接执行内部查询?
-
嗯,我从 tbl_ratings 获得了超过 7000 个结果,而不是 350+。如果没有 group by,我会得到一些重复的信息。
-
您打算执行“INNER JOIN”还是“LEFT JOIN”,但不小心得到了“OUTER JOIN”?