У меня есть 3 таблицы, к которым я бы хотел присоединиться. ут, Д.С. и т.п.MySql Join 3 Таблицы, где две таблицы объединены, а затем третье после
ет соединяется с йзом DS вливается с ф
Я только хочу, чтобы соответствовать с первоначальным запросом ниже, который возвращает 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)`
Я хочу присоединиться таблицы дц и tp on:
`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 JOINs расширяют результат - от 8703 до 30 000 - потому что в '' vm' есть, вероятно, несколько 'DatastoreName' в' ds' для каждого 'datastore'. Вы пробовали '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- query – Strawberry