[英]How to rewrite SQL query that has subquery with joins
我有一個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
提前致謝!
是否簡單如:
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
GROUP BY r.id
ORDER BY r.dateAdded DESC
另外,您在查詢中沒有其他地方引用“ vi_data
”
將您的group by
子句更改group by r.id
進行group by r.id
。 由於您是從派生表(子查詢)中選擇的,因此數據庫無法判斷派生表中只有一個“ id”字段-它只能看到子查詢中指定的列標題,即r.id
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.