Отправляет email-рассылки с помощью сервиса Sendsay

RFpro.ru: Базы данных MySQL

  Все выпуски  

RusFAQ.ru: Базы данных SQL


Новое направление Портала RusFAQ.ru:
MosHoster.ru - Профессиональный хостинг

Народное голосование ПРЕМИИ РУНЕТА-2007!
Голосуем за RusFAQ.ru >>

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Базы данных SQL

Выпуск № 305
от 17.11.2007, 09:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 462, Экспертов: 60
В номере:Вопросов: 1, Ответов: 1


Вопрос № 108919: Добрый день, уважаемые эксперты. Имеется несколько несвязанных между собой таблиц следующего вида (В Приложении): В общей постановке задачи такого рода таблиц бужет насчитыватся около 10, но пока решил ограничится этим. Вопрос в следующем: К...

Вопрос № 108.919
Добрый день, уважаемые эксперты. Имеется несколько несвязанных между собой таблиц следующего вида (В Приложении):

В общей постановке задачи такого рода таблиц бужет насчитыватся около 10, но пока решил ограничится этим. Вопрос в следующем: Каким образом можно сделать выборку значений по всем элементам по Таблице1 и Таблице2 одним запросом. Из формы берутся данные по номеру лицевого счета абонента и временной интервал, за который следует выполнить запрос, т.е. дата начала и дата окончания. Обратите внимание, что в Таблице2 есть не все лицевые счета, которые есть в Таблице1. Запрос по одной таблице замечательно работает. Можно конечно же сделать отдельный запрос под каждую таблицу, но будет некрасиво, а в некоторых случаях и долго.
Под одну таблицу запрос выглядит совсем просто:

$str = "nas_ls ='$_POST[ls]' AND nas_data>='$_POST[dA]' AND nas_data<='$_POST[dZ]'";
$query = "SELECT * FROM nas WHERE $str";
$result = mysql_query($query) or die(mysql_error());
for($mas = array(); $row = mysql_fetch_assoc($result); $mas[]=$row);
ну и т.д.

Помогите, пожалуйста, а то после моих проб объеденить все в один запрос получается полный бред. Заранее благодарен.

P.S. Прошу обратить внимание, что значения лицевых счетов из Таблицы 1 может не присутствовать в Таблице 2.

Приложение:

Отправлен: 11.11.2007, 12:02
Вопрос задал: Савченко И.В. (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 3)

Отвечает: Титов Михаил Анатольевич
Здравствуйте, Савченко И.В.!
А ваша СУБД поддерживает представления (View)? Если да, то так

CREATE VIEW nas_igot
AS
SELECT DISTNCT nas_ls AS Is, nas_data AS data, nasS AS S FROM nas
UNION
SELECT DISTNCT lgot_ls, lgot_data, lgS FROM lgot
Далее в ваших запросах используете имя представления вместо имени таблицы. Но имейте в виду - при больших объемах данных неизбежно возникнут проблемы с производительностью. Лучше сразу пересмотреть структуру базы данных - все десять nas, Ig и т.д. в одну таблицу, а различать их по специальному кодовому полю.
Ответ отправил: Титов Михаил Анатольевич (статус: 3-ий класс)
Ответ отправлен: 12.11.2007, 03:01


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Техподдержка портала, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале
Версия системы: 4.62.1 от 14.11.2007
Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное