|
|
|
|
|
для: Trianon
(22.11.2007 в 20:18)
| | >
>
>Если Вы так сделаете, то после этого у Вас не окажется таблиц, в которых сможет действовать один и тот же критерий отбора, и соответственно, вопрос отпадет сам собой.
Да, с запятой я промахнулся, прошу прощения,
но объединить таблицы невозможно, так как при других запросах важно точное количество и порядок нумерации строк таблицы.
Я бы и сам так хотел: свалить всё в одну кучу, добавить дополнительный столбец, для различения, но не тут-то было. Тогда у меня в другом месте возникают запросы очень сложные, которые средствами Mysql нет шансов сформулировать.
Вышеупомянутый запрос можно поочерёдно по таблицам сделать. Не слишком быстро будет, но и не слишком долго. А вот запросы другого типа к объединённой таблице выйдут за рамки реального.
Можно и ещё более хитроумную структуру базы изобрести, но тогда надо трансакции вводить.
Таблицы с похожим содержимым объединятся, но усложнится логика запросов. Я много вариантов просмотрел.
Связь между таблицами слишком жёсткая, чтобы что-то можно было поменять без потерь функциональности. Если бы они посто были связаны индексами, тогда бы всё решалось без проблем, но они связаны через битовые поля, с которыми MySQL не работает.
Ну ладно, если у вас других рекомендаций нет, то сделаю посто поочерёдный поиск во всех похожих таблицах..
Спасибо за участие!
У меня, кстати, по MySQL только справочник. Где ближе всего лежит толковый рассказ
про многотабличный SELECT мне трудно судить. Ведь чтобы дать оценку надо иметь кругозор
шире, чем у меня пока есть. Я готов его расширять, но часто чувствую после очередной какой-то статейки, что только время зря потерял. | |
|
|
|
|
|
|
|
для: Eugene77
(22.11.2007 в 17:53)
| | если вспомнить что запятая в табличном выражении - эквивалент ключевого слова join, нетрудно прийти к выводу, что строки вы извлекаете не из одной (и не из нескольких) таблиц, а из табличного декартового произведения.
К примеру, если в каждой из таблиц у вас по три столбца и по десятку строк, то SELECT Ваш будет с общей таблицей с 3*5 = пятнадцатью столбцами, и с 10^5 = сотней тысяч строк.
Вы этого хотели?
Идеи есть. Почитать про оператор SELECT в ближайшем хорошем учебнике (или в курсе лекций) )по SQL. А также про назначение таблиц в базе данных.
Если Вы так сделаете, то после этого у Вас не окажется таблиц, в которых сможет действовать один и тот же критерий отбора, и соответственно, вопрос отпадет сам собой. | |
|
|
|
|
|
|
| Мне надо извлечь из нескольких таблиц строки удовлетворяющие некому критерию, скажем: id=274
Но надо знать из какой таблицы какая строка извлечена.
Список таблиц для поиска я пока просто перечисляю через запятую:
SELECT * FROM t1,t2,t3,t4,t5 WHERE id=274
Есть идеи? | |
|
|
|
|