2013-06-03 3 views
0

У меня есть две таблицы: Поставщики и Unit_User.MySQL: Как получить часть информации из одной таблицы на основе ее идентификатора в другой таблице

В таблице поставщиков есть поле, называемое поставщиками, которое содержит список идентификаторов, разделенных запятыми. Это идентификаторы единиц в таблице Unit_User. Мне нужен запрос, чтобы получить unit_name из Unit_User для каждой из идентификаторов в столбце поставщиков.

Я знаю, что это относительно просто, но я довольно новичок в MySQL, поэтому любая помощь будет оценена по достоинству.

+2

"содержит список, разделенный запятой", о котором говорится все. Вам необходимо перепроектировать таблицу в макете [normalized] (https://en.wikipedia.org/wiki/Database_normalization). Тогда ваша проблема станет простой операцией 'JOIN'. –

+0

Чтобы сделать то, что говорит @MarcB, либо добавьте столбец «Поставщики» в «Unit_User», если он может иметь только одного поставщика, либо создать таблицу «SuppliersUnit_UsersMap» со строками, которые имеют идентификаторы обоих –

ответ

0

Значения, разделенные запятой, являются плохим дизайном. Если вы не можете перепроектировать таблицу, или если вы используете чужую таблицу, попробуйте использовать код приложения для разбора и выполнения запроса. Было бы ненадежным делать это через SQL.

+0

. Это не ответ. Это должен был быть комментарий. –