Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > MySQL > Возможно ли использовать SHOW TABLES в подзапросе? |
Автор: Plavozont 31.8.2010, 13:11 |
Просто делаю что-то вроде CMS в перемешку с СУБД. У меня есть система создающая форму для ввода данных в таблицу. Для каждой таблицы базы, для каждого её поля есть описание, хранящееся в таблице описаний. И в ней можно задать для поля ввод данных из справочника. Делается это при помощи запроса. Например "SELECT field.code, field.name FROM some_table". На основе этого запроса создастся поле на форме ввода типа <select...>...</select>, в котором <option value=field.code>field.name</option>... И мне нужно сделать всплывающий список в котором можно выбрать таблицу из текущей базы данных, а также поле из этой таблицы. Хотел сделать это с помощью SHOW TABLES и SHOW FIELDS но не смог запихнуть их в подзапрос чтобы привести к виду "SELECT table.name, table.name FROM (SHOW TABLES)". |
Автор: skyboy 31.8.2010, 13:54 |
можно select * from information_schema.tables а так, как ты хотел - нет, не выйдет. |
Автор: Plavozont 31.8.2010, 14:06 |
Жаль что в information_schema.tables не перечислены поля таблиц... |
Автор: skyboy 31.8.2010, 14:47 |
а все потому, что они перечислены в information_schema.columns Добавлено через 15 секунд а так - действительно, жаль. |
Автор: Plavozont 2.9.2010, 00:04 |
Yes, всё плучилось ! SELECT DISTINCT TABLE_NAME as table_name, TABLE_NAME as table_caption FROM (SELECT * FROM information_schema.columns WHERE TABLE_SCHEMA=DATABASE()) as tmp SELECT c_code, c_name FROM (SELECT TABLE_NAME as table_name, COLUMN_NAME as c_code, COLUMN_NAME as c_name FROM information_schema.columns WHERE TABLE_SCHEMA=DATABASE()) as tmp Большое спасибо ! |
Автор: Plavozont 2.9.2010, 09:50 | ||
Чтобы избавиться от WHERE, он там у меня программно потом добавляется, и с примешиванием к имеющемуся WHERE программного не захотел пока заморачиваться. На самом деле на основе этих запросов создаётся два поля в одном выбираешь таблицу, и на событие onchange в нём второе заполняется списком полей этой таблицы.
волшебненько довольно получается |
Автор: 02077461 9.9.2010, 12:50 |
Ужас, тихий ужас... Вы мешаете котлеты с мухами данные со структурой, это раз. Вы жестко и насвегда привязываетесь к одной СУБД (и даже, теоритечески, к ее версии) Пока не поздно, измените архитектуру проекта. <offtop> skyboy, ваш ответ равносилен "пистолет у виска надо держать вот так." </offtop> |
Автор: skyboy 9.9.2010, 12:59 | ||
угу. медвежья услуга ![]() |