Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Возможно ли использовать SHOW TABLES в подзапросе? 
:(
    Опции темы
Plavozont
Дата 31.8.2010, 13:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 182
Регистрация: 14.4.2008

Репутация: нет
Всего: нет



Просто делаю что-то вроде 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)".
--------------------
Fortunately, the circumstances under which those words are useful run out at a relatively low level of multiplicity.
PM MAIL   Вверх
skyboy
Дата 31.8.2010, 13:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 41
Всего: 260



можно select * from information_schema.tables
а так, как ты хотел - нет, не выйдет.
PM MAIL   Вверх
Plavozont
Дата 31.8.2010, 14:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 182
Регистрация: 14.4.2008

Репутация: нет
Всего: нет



Жаль что в information_schema.tables не перечислены поля таблиц...
--------------------
Fortunately, the circumstances under which those words are useful run out at a relatively low level of multiplicity.
PM MAIL   Вверх
skyboy
Дата 31.8.2010, 14:47 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 41
Всего: 260



а все потому, что они перечислены в information_schema.columns

Добавлено через 15 секунд
а так - действительно, жаль.
PM MAIL   Вверх
Plavozont
Дата 2.9.2010, 00:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 182
Регистрация: 14.4.2008

Репутация: нет
Всего: нет



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, 00:05
--------------------
Fortunately, the circumstances under which those words are useful run out at a relatively low level of multiplicity.
PM MAIL   Вверх
skyboy
Дата 2.9.2010, 00:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 41
Всего: 260



Цитата(Plavozont @  1.9.2010,  23:04 Найти цитируемый пост)
SELECT DISTINCT TABLE_NAME as table_name, TABLE_NAME as table_caption FROM (SELECT * FROM information_schema.columns WHERE TABLE_SCHEMA=DATABASE()) as tmp

а подзапрос для чего?
PM MAIL   Вверх
Plavozont
Дата 2.9.2010, 09:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 182
Регистрация: 14.4.2008

Репутация: нет
Всего: нет



Чтобы избавиться от WHERE, он там у меня программно потом добавляется, и с примешиванием к имеющемуся WHERE программного не захотел пока заморачиваться.
На самом деле на основе этих запросов создаётся два поля в одном выбираешь таблицу, и на событие onchange в нём второе заполняется списком полей этой таблицы.

Код

SELECT * FROM (SELECT DISTINCT TABLE_NAME as table_name, TABLE_NAME as table_caption FROM information_schema.columns WHERE TABLE_SCHEMA=DATABASE()) as tmp [][field_name]
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 [table_name][]


волшебненько довольно получается
--------------------
Fortunately, the circumstances under which those words are useful run out at a relatively low level of multiplicity.
PM MAIL   Вверх
02077461
Дата 9.9.2010, 12:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 183
Регистрация: 13.7.2005

Репутация: нет
Всего: 0



Ужас, тихий ужас... 
Вы мешаете котлеты с мухами данные со структурой, это раз. Вы жестко и насвегда привязываетесь к одной СУБД (и даже, теоритечески, к ее версии)
Пока не поздно, измените архитектуру проекта. 
<offtop>
skyboy, ваш ответ равносилен "пистолет у виска надо держать вот так."
</offtop>

Это сообщение отредактировал(а) 02077461 - 9.9.2010, 12:51
PM   Вверх
skyboy
Дата 9.9.2010, 12:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 41
Всего: 260



Цитата(02077461 @  9.9.2010,  11:50 Найти цитируемый пост)
skyboy, ваш ответ равносилен "пистолет у виска надо держать вот так."

угу. медвежья услуга  smile 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MySQL | Следующая тема »


 




[ Время генерации скрипта: 0.0738 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.