dimastik1986
@dimastik1986
учусь

Как составить запрос из двух табл?

есть две табл, назовем их основная и дополнительная
  • в дополнительной хранятся записи со статусом, датой и id записи в основной таблице, к которой относится эта информация
  • для одной записи в основной таблице может быть сколько угодно записей в дополнительной


т.е. мне нужно, если в дополнительной таблице ПОСЛЕДНЯЯ запись имеет статус=1, то добавляем в выдачу, если статус=0, пропускаем
  • Вопрос задан
  • 103 просмотра
Решения вопроса 2
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
SELECT *
  FROM `primary`
  WHERE `id` IN (
    SELECT `s`.`primary_id` 
      FROM (
        SELECT `primary_id`, MAX(`datetime`) AS `datetime`
          FROM `secondary`
          GROUP BY `primary_id`
        ) AS `t`
        JOIN `secodary` AS `s` ON `s`.`state` = 1
          AND `s`.`primary_id` = `t`.`primary_id`
          AND `s`.`datetime` = `t`.`datetime`
      )
Ответ написан
Комментировать
bitniks
@bitniks
Go/PHP/Symfony developer
SELECT *
FROM main m
LEFT JOIN extra e1 ON m.id = e1.main_id
LEFT JOIN extra e2 ON e1.main_id = e2.main_id AND e2.date > e1.date
WHERE e2.date IS NULL AND e1.status = 1;
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
tsklab
@tsklab
Здесь отвечаю на вопросы.
Без указания параметров сортировки в таблице нет ни первой записи, ни последней.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы