Я обычно задаю свои вопросы, поскольку они не уникальны только для меня. Однако на этот раз я не могу найти ответ (возможно, не используя правильные ключевые слова).mysql выбрать несколько столбцов одной строки из другой таблицы
Описание проблемы:
У меня есть две таблицы.
Первая таблица - defenition_list имеет уникальный идентификатор и имя
ID | NAME
-----------
1 | BMW
2 | AUDI
3 | VW
4 | MAZDA
Вторая таблица - used_id имеет идентификатор из первой таблицы
ID | def_uid1 | def_uid2 | def_uid3
------------------------------------
1 | 2 | 3 | 2
2 | 4 | 2 | 1
Так обычно Если мне нужно возвращать значение только из одного столбца , Я бы выбрал:
SELECT d.NAME, u.def_uid1 FROM defenition_list d, used_id u WHERE d.ID=u.def_uid1
Но как написать запрос для получения имен def_uid2 и def_uid3 в одно и то же время? Так результат будет выглядеть следующим образом:
ID | def_uid1 | def_uid2 | def_uid3 |
--------------------------------------
1 | AUDI | VW | AUDI |
2 | MAZDA | AUDI | BMW |
, что зависит от того, что вы хотите, хотите ли вы присоединиться к двум таблицам на основе равенства 'defenition_list.ID' и любых/всех столбцов в' used_id' или что? –
См. Нормализацию. – Strawberry
http://sqlfiddle.com/#!9/a6973/2 - Я предположил, что вы хотели перечислить в базу данных 3-го автомобильного бренда пользователя. U может добавить дополнительный пользовательский ТАБЛ и установить user_pref table primary_key (user_id, id_brand). Надеюсь, это помогло. – Falt4rm