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

Форум MySQL

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

 

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

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

тема: Как лучше сделать поиск по 2ум одинаковым табл.?

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

 
 автор: а-я   (12.02.2008 в 20:10)   письмо автору
 
   для: cheops   (12.02.2008 в 11:56)
 

хорошо.. спасибо. попробую что-нибудь придумать..

   
 
 автор: cheops   (12.02.2008 в 11:56)   письмо автору
 
   для: а-я   (12.02.2008 в 03:07)
 

А так два раза будет производиться поиск в одной и той же таблице tbl (правда оптимизатор второй запрос скорее всего отклонит). В конструкции UNION оба запроса выполняются, если таблицы большие, то два запроса с проверкой условия у вас будут выполняться быстрее.

PS Можно создать третью таблицу, которая будет хранить число или ID начиная с которого идут архивные записи (или хранить это значение в каком-то другом месте) - тогда можно будет всегда обходиться одним запросом.

   
 
 автор: а-я   (12.02.2008 в 03:07)   письмо автору
 
   для: Unkind   (12.02.2008 в 02:52)
 

а так:


SELECT DISTINCT * FROM tbl WHERE ID = 345  LIMIT 1
UNION 
SELECT DISTINCT * FROM tbl WHERE ID = 345  LIMIT 1

   
 
 автор: Unkind   (12.02.2008 в 02:52)   письмо автору
 
   для: а-я   (12.02.2008 в 01:50)
 

Во второй тоже будет происходить поиск.

   
 
 автор: а-я   (12.02.2008 в 01:50)   письмо автору
 
   для: cheops   (12.02.2008 в 01:13)
 

т.е. если в 1 таблице значение будет найдено,
то во второй таблице поиск уже не будет происходить?

   
 
 автор: cheops   (12.02.2008 в 01:13)   письмо автору
 
   для: а-я   (11.02.2008 в 20:19)
 

Если ID уникален для обоих таблиц, можно воспользоваться оператором UNION
SELECT * FROM tbl WHERE ID = 345
UNION
SELECT * FROM arch WHERE ID = 345

   
 
 автор: а-я   (11.02.2008 в 20:19)   письмо автору
 
 

поиск идет по уникал. значинию. по ID/
т.е. нужно найти только одну запись.

есть 2 одинаковые таблицы.
1) основная
2) архив.

сейчас у меня стоит так

делаем 2 запроса.
1) поиск из 1 таблицы,
если ответ пустой, то делаем
2) второй запрос 2ой таблице.
если пустой, то такой темы нет.

можно такие запросы сделать вместе???

DISTINCT ??? LIMIT???


т.е. как будто мы по одной таблице ищем...

   

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

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

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