2017-02-21 2 views
-2

У меня есть 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 часов.

Является ли то, что я пытаюсь сделать возможным?

+0

Как выглядит ваш требуемый результат? – r0xette

+0

Ваши INNER JOINs расширяют результат - от 8703 до 30 000 - потому что в '' vm' есть, вероятно, несколько 'DatastoreName' в' ds' для каждого 'datastore'. Вы пробовали 'GROUP BY ds.DatastoreName'? – Fredster

+0

См. 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

ответ

0

Ваши INNER JOINs расширяют результат - от 8703 до 30 000 - потому что в каждом хранилище данных в vm есть, вероятно, несколько DatastoreName в ds.

Вы пробовали GROUP BY vm.id?

Смежные вопросы