2015-01-10 6 views
-1

У меня есть таблица «Автомобиль», где у меня есть два столбца Cname и Ccolor. Мне нужна эта таблица или новая таблица, которая содержит список автомобилей с общим цветом и динамическое связывание.Как создать динамическую таблицу из данных другой таблицы в SQL

Что у меня есть:
+---------+--------+ 
| Cname | Ccolor | 
+---------+--------+ 
| Ferrari | Red | 
| Maruti | Red | 
| Phantom | Red | 
| Duster | Black | 
| Beetle | Black | 
| Hummer | White | 
| Skoda | White | 
| Pajero | White | 
+---------+--------+ 
То, что я пытаюсь достичь:
+---------+--------+-----------------+ 
| Cname | Ccolor | CommonColorCar | 
+---------+--------+-----------------+ 
| Ferrari | Red | Maruti Phantom | 
| Maruti | Red | Ferrari Pahntom | 
| Phantom | Red | Ferrari Maruti | 
| Duster | Black | Beetle   | 
| Beetle | Black | Duster   | 
| Hummer | White | Skoda Pajero | 
| Skoda | White | Hummer Pajero | 
| Pajero | White | Hummer Skoda | 
+---------+--------+-----------------+ 
+3

Добро пожаловать в SO! Что вы пробовали до сих пор? Вы проводили какое-либо исследование, прежде чем публиковать свой вопрос? Есть ли проблемы, с которыми вы столкнулись? – Timusan

+0

Да, я пробовал самостоятельно, но не смог получить результат. Я также не специалист в sql. –

+1

Если вы пробовали себя, отправьте свои SQL-запросы (и/или другие сопроводительные коды) и объясните, какие ошибки вы получили, или по какой части вы зашли на мель. Показ усилий в попытке решить вашу собственную проблему будет мотивировать сообщество SO на то, чтобы вы попали на правильный путь. – Timusan

ответ

0

Я не могу понять, почему вы можете сцепить этот результат, но все равно ...

SELECT x.* 
    , GROUP_CONCAT(y.name) 
    FROM my_table x 
    LEFT 
    JOIN my_table y 
    ON y.color = x.color 
    AND y.name <> x.name 
GROUP 
    BY x.name 
    , x.color; 
+0

Mohammad, я полностью согласен с Strawberry: эти данные могут быть вычислены в любой момент времени (когда вам нужна * информация). Кроме того, если значения в вашей базе данных меняются по пути, ваш столбец «CommonColorCar» будет не синхронизирован, поэтому вам нужно будет предусмотреть некоторые триггеры внутри вашей базы данных, чтобы сохранить этот столбец в здравом рассудке (больше аргументов * not * для этого столбца в первое место). Клубника ... Вы только что удалили все комментарии по поводу вопроса? – Timusan

+0

@strawberry: можете ли вы сказать мне, что здесь <> здесь ?? –

+0

«не равно» ... – Strawberry

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