Задать вопрос
on_click
@on_click

Возможно ли прикрепить дополнительный столбец исходя из данных таблицы?

Имеется вот такая табличка с гаражами и машинами.
5c9cf74b4fa6c768754735.png
В 1 гараже может быть до 2х машин.
Мне нужно получить все гаражи в которых например есть нива и добавить в каждую строку с ответом еще 1 параметр -> вторая машина в гараже.
Возможно ли это сделать 1м запросом?
5c9cf8d851cbd837573396.png
Логика подсказывает, что если возможно, то делается через join но мозгов не хватает, подскажите пожалуйста как быть.
  • Вопрос задан
  • 178 просмотров
Подписаться 3 Простой Комментировать
Решения вопроса 2
tsklab
@tsklab
Здесь отвечаю на вопросы.
SELECT garages.garage, garages.car AS 1st, garages2dn.car AS 2nd
  FROM garages 
    INNER JOIN garages AS garages2dn ON garages.garage = garages2dn.garage
  WHERE (garages.car = 'niva') AND (garages2dn.car <> 'niva')

А вот, если нет второй машины:
SELECT garages.garage, garages.car AS 1st, garages2dn.car AS 2nd
FROM garages 
  LEFT OUTER JOIN garages AS garages2dn 
    ON garages.garage = garages2dn.garage AND garages.ID <> garages2dn.ID
WHERE (garages.car = 'niva')
Ответ написан
flapflapjack
@flapflapjack
на треть я прав
Можете считать меня сумасшедшим, но:
SELECT
  car1,
  car2,
  t1.garage
FROM (SELECT
    MIN(car) car1,
    garage
  FROM garages
  GROUP BY garage) t1
  JOIN (SELECT
      MAX(car) car2,
      garage
    FROM garages
    GROUP BY garage) t2
    ON t1.garage = t2.garage
WHERE car1 <> car2


Актуально конечно же только при максимально двух машинах в гараже.

Заранее прошу извинить меня юзера FanatPHP за это, ибо скорее всего, я ему этим запросом испорчу настроение окончательно))

Буду рад увидеть правильное решение, ибо SQL меня очень даже интересует.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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