Добрый день.
Хочу сделать для себя таблицу соответствия названий полей, т. е. чтобы понять, что поле f862 в таблице f_data80 - это поле "Счет-факура" в таблице "Позиции Счет-фактуры".
Начал делать через таблицы f_tables, f_fields и INFORMATION_SCHEMA.COLUMNS
SELECT t.id, t.name_table, f.field_num, f.name_field, c.column_name
FROM f_tables t, f_fields f, INFORMATION_SCHEMA.COLUMNS c
where t.id = f.table_id
and concat('f_data', t.id) = c.table_name
and c.ordinal_position = f.field_num
order by t.id, f.field_num
...и все вроде хорошо на первый взгляд получилось, но я заметил, что порядковый номер поля f_fields.field_num не везде идет по-порядку, а точнее много, где после 4-го обязательного поля идет сразу 6. Соответственно этот номер не соответствует порядковому номерому в таблице COLUMNS.
Как это можно обойти средствами MySql или может есть другие способы получить соответствия?
0
Соотношение mysql-ных и осмысленных названий полей таблиц
Автор vitaliy, 19 сент. 2013 13:35
В теме одно сообщение
#1
Отправлено 19 Сентябрь 2013 - 13:35
#2
Отправлено 19 Сентябрь 2013 - 15:45
Вот я гоню, зачем INFORMATION_SCHEMA.COLUMNS? f_fields.id - дает как раз название поля. Щас сделаем...
вот что получилось:
SELECT t.id, t.name_table, f.field_num, f.name_field, concat('f', f.id)
FROM f_tables t, f_fields f
where t.id = f.table_id
and f.field_num > 4
order by t.id, f.field_num
вот что получилось:
SELECT t.id, t.name_table, f.field_num, f.name_field, concat('f', f.id)
FROM f_tables t, f_fields f
where t.id = f.table_id
and f.field_num > 4
order by t.id, f.field_num
Сообщение отредактировал vitaliy: 19 Сентябрь 2013 - 15:49
Количество пользователей, читающих эту тему: 2
0 пользователей, 2 гостей, 0 анонимных