-2
我有3個表格我想加入。 VM,DS和TPMySql加入3個表格,其中兩個表格加入,然後是第三個表格
VM與DS DS與TP連接加入
我只想匹配與原始查詢低於返回8703,並從其他表,所以我結束了返回一行最後8703行。
`SELECT *
FROM vm
WHERE date = (SELECT max(date) from vm)`
如預期的那樣返回8703個結果。
然後,我想要使用上面的表並將它與另一個表連接以檢索更多的值。
第二個查詢加入
`SELECT *
FROM ds
WHERE date = (SELECT max(date) from ds)`
我想加入上述兩個上:
INNER JOIN ds ON vm.datastore = ds.DatastoreName
第三個查詢加入
`SELECT *
FROM tp
WHERE date = (SELECT max(date) from tp)`
我想加入表DS並打印到:
`INNER JOIN tp ON ds.uid = tp.uid`
我試過以下,但它返回30,000行,我只想從上面8703。
完整的查詢:
`SELECT *
FROM vm
INNER JOIN ds ON vm.datastore = ds.DatastoreName
INNER JOIN tp ON ds.uid = tp.uid
WHERE vm.date = (SELECT MAX(date) from vm)
AND ds.date = (SELECT MAX(date) from ds)
AND tp.date = (SELECT MAX(date) from tp)`
我也嘗試過上述的許多版本在過去的8小時。
正在嘗試做什麼?
您需要的結果應該是什麼樣子? – r0xette
您的INNER JOIN將結果從8703擴展到30,000 - 因爲'vm'中的每個'datastore'在'ds'中可能有多個'DatastoreName'。你嘗試過'GROUP BY ds.DatastoreName'嗎? – Fredster
請參閱http://meta.stackoverflow.com/questions/333952/why-should-i-provide-an-mcve-for-what-seems-to-me-to-be-a-very-simple-sql-查詢 – Strawberry