Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Узнать из какой таблицы извлёк строку

Сообщения:  [1-3] 

 
 автор: Eugene77   (23.11.2007 в 21:00)   письмо автору
 
   для: Trianon   (22.11.2007 в 20:18)
 

>
>
>Если Вы так сделаете, то после этого у Вас не окажется таблиц, в которых сможет действовать один и тот же критерий отбора, и соответственно, вопрос отпадет сам собой.

Да, с запятой я промахнулся, прошу прощения,
но объединить таблицы невозможно, так как при других запросах важно точное количество и порядок нумерации строк таблицы.
Я бы и сам так хотел: свалить всё в одну кучу, добавить дополнительный столбец, для различения, но не тут-то было. Тогда у меня в другом месте возникают запросы очень сложные, которые средствами Mysql нет шансов сформулировать.

Вышеупомянутый запрос можно поочерёдно по таблицам сделать. Не слишком быстро будет, но и не слишком долго. А вот запросы другого типа к объединённой таблице выйдут за рамки реального.

Можно и ещё более хитроумную структуру базы изобрести, но тогда надо трансакции вводить.
Таблицы с похожим содержимым объединятся, но усложнится логика запросов. Я много вариантов просмотрел.

Связь между таблицами слишком жёсткая, чтобы что-то можно было поменять без потерь функциональности. Если бы они посто были связаны индексами, тогда бы всё решалось без проблем, но они связаны через битовые поля, с которыми MySQL не работает.

Ну ладно, если у вас других рекомендаций нет, то сделаю посто поочерёдный поиск во всех похожих таблицах..
Спасибо за участие!
У меня, кстати, по MySQL только справочник. Где ближе всего лежит толковый рассказ
про многотабличный SELECT мне трудно судить. Ведь чтобы дать оценку надо иметь кругозор
шире, чем у меня пока есть. Я готов его расширять, но часто чувствую после очередной какой-то статейки, что только время зря потерял.

   
 
 автор: Trianon   (22.11.2007 в 20:18)   письмо автору
 
   для: Eugene77   (22.11.2007 в 17:53)
 

если вспомнить что запятая в табличном выражении - эквивалент ключевого слова join, нетрудно прийти к выводу, что строки вы извлекаете не из одной (и не из нескольких) таблиц, а из табличного декартового произведения.
К примеру, если в каждой из таблиц у вас по три столбца и по десятку строк, то SELECT Ваш будет с общей таблицей с 3*5 = пятнадцатью столбцами, и с 10^5 = сотней тысяч строк.
Вы этого хотели?

Идеи есть. Почитать про оператор SELECT в ближайшем хорошем учебнике (или в курсе лекций) )по SQL. А также про назначение таблиц в базе данных.

Если Вы так сделаете, то после этого у Вас не окажется таблиц, в которых сможет действовать один и тот же критерий отбора, и соответственно, вопрос отпадет сам собой.

   
 
 автор: Eugene77   (22.11.2007 в 17:53)   письмо автору
 
 

Мне надо извлечь из нескольких таблиц строки удовлетворяющие некому критерию, скажем: id=274
Но надо знать из какой таблицы какая строка извлечена.
Список таблиц для поиска я пока просто перечисляю через запятую:
SELECT * FROM t1,t2,t3,t4,t5 WHERE id=274
Есть идеи?

   

Сообщения:  [1-3] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования