-2
3つのテーブルがあります。 VMは、DSとTPMySql Join 3 2つのテーブルが結合されたテーブルとその後に3番目のテーブル
VMは、TPと結合 DS DSで合流
私はそれが8703を返すの下に元のクエリと一致し、私が終わるので、他のテーブルから単一の行を返すようにしたい最後に8703行。
`SELECT *
FROM vm
WHERE date = (SELECT max(date) from vm)`
これは、期待どおりの8703結果を返します。
私は上記のテーブルを使用して別のテーブルと結合して、さらに値を取得したいと考えています。私はテーブルのDSに参加したい
`SELECT *
FROM tp
WHERE date = (SELECT max(date) from tp)`
に参加する
INNER JOIN ds ON vm.datastore = ds.DatastoreName
サード問合せ:
2番目のクエリ私は上記の二つの上参加したい
`SELECT *
FROM ds
WHERE date = (SELECT max(date) from ds)`
に参加しますtp:
`INNER JOIN tp ON ds.uid = tp.uid`
私は以下を試しましたが、30,000,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