我有一個類似的問題the one solved here,但是當我試圖解決我想是因爲我有事情設置了不同的失敗..查找列的最大值,然後組在同一個表的另一列
我有... 一個文檔表(表遺憾的是不能被修改,因爲它有一箇舊系統)
+-------+--------+----------+--------+
| Docid | title | revision | linkid |
+-------+--------+----------+--------+
| 1 | docone | 1 | 1 |
| 2 | doctwo | 1 | 2 |
| 3 | docone | 2 | 1 |
|4 | docone | 3 | 1 |
+-------+--------+----------+--------+
在一個頁面上,列出了所有我想只列出每個文件的最新版本的文件。 Doc1例如在修訂版本3上,所以我想要那個而不是其他版本。Doc2只在修訂版本1上,所以表明一個。
根據在其他文章中,我已經writen我的查詢如下問題......
$query_docs = "
SELECT `document`.*, doctype.*
FROM `document`
INNER JOIN doctype
ON `document`.iddoctypes = doctype.iddoctypes
WHERE `document`.revision = (
SELECT MAX(`document`.revision) AS revision
FROM `document`
)
GROUP BY `document`.linkid
ORDER BY `document`.doccreation DESC";
我不得不鏈接到另一個表來獲取文檔類型(只是爲了讓查詢更難)。
如果您先嚐試從文檔表中獲得想要的內容,然後再擔心從doctype中添加額外的細節,可能會更容易。 – nurdglaw
是簡單地將內部聯接重新排序到子查詢的括號之後? –
不是真的;更多的是你試圖解決一個問題,從'document'表中獲取一些數據。我建議你把注意力集中在這一點上,並且不要擔心在額外的數據表中添加額外的表格,除非你已經弄清楚瞭如何從'document'表格中獲得你想要的數據。 – nurdglaw