Codeigniter - выборка данных из мета-таблицы с несколькими дубликатами по MaxDate / time с использованием MySql

0

Я пытаюсь получить данные из трех таблиц.

Имена таблиц

  1. стол спа
  2. стол spa_meta
  3. таблица Inventory (Inventory возвращает только один столбец unit_no, используя простое соединение, что не является проблемой)

Структура данных для таблиц выглядит следующим образом

настольный спа Изображение 174551

стол spa_meta

Изображение 174551

  • Я хочу перечислить данные, откуда должна исходить основная информация из First Table Spa (id, title, inventory_id)
  • но из другой таблицы spa_meta должна быть выбрана только ОДНА запись с соответствием spa_id, которое должно быть DESC в соответствии со столбцом create_at (время)

Вопрос: Как добиться этого, используя минимальный SQL-запрос. Как я пытаюсь, что явно неправильно

 select *, inventory_id, max(created_at) as MaxDate, inventory.unit_no as unit
from spa_meta t
inner join (
    select spa.id as id, spa.title, spa.inventory_id as inventory_id, 
    from spa

     group by spa.id 
) tm on t.spa_id = tm.id 

left join inventory  on tm.inventory_id = inventory.id
group by unit
 order by MaxDate DESC
Теги:
codeigniter

1 ответ

0
SELECT spa_1.id as id, spa_1.title, spa_1.inventory_id, inventory.unit_no as unit, 
spa_meta.*
FROM spa_meta
JOIN (
   SELECT spa.*, (SELECT MAX(created_at) FROM spa_meta WHERE spa_meta.spa_id = 
   spa.id) as max_date FROM spa 
) AS spa_1 ON spa_1.max_date = spa_meta.created_at AND spa_1.id = spa_meta.spa_id
LEFT JOIN inventory ON spa_1.inventory_id = inventory.id        
  • 0
    Спасибо, это приводит меня к результатам. Можем ли мы удалить дублирование из этого результата, который приходит, выполнив вышеуказанный запрос. prntscr.com/net7f7 Посмотрите, инвентаризация повторяется дважды.
  • 0
    у вас есть дубликаты записей в таблице «инвентарь»
Показать ещё 5 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню