Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




MySQL.RU - Webboard



Вернуться
Запрос с встречающимся пустыми полями (Ashotovich) 27/11/2003 - 12:15:30



From: Ashotovich - 27/11/2003 - 12:15:30
Subject:Запрос с встречающимся пустыми полями
-----------------
Всем доброго времени суток.
Возник у меня следующий вопрос: как в MySQL сделать селект следующего вида (простой пример):

SELECT table1.field1_id, table2.field2_name FROM table1, table2 WHERE table1.field2_id=table2.field2_id

из таблиц table1:
CREATE TABLE `table1` (`field1_id` TINYINT (3) UNSIGNED DEFAULT '0', `field2_id` TINYINT (3) UNSIGNED DEFAULT '0')

и table2:
CREATE TABLE `table2` (`field2_id` TINYINT (3) UNSIGNED DEFAULT '0', `field2_name` VARCHAR (3) DEFAULT '0'),

если table1.field2_id и, соответственно, относящийся к нему table2.field2_name периодически не заполнены? Если оставить запрос как есть - см. выше, то селект выдает только те строки, которые соответствуют значению table1.field2_id, не равному NULL. Строки же с пустым значением не выдает.
В Оракле это решалось просто - к названию полей в селекте, могущих иметь значение NULL просто ставился значок (+). В MySQL же это не проходит... Как быть?

Народ на других форумах рекомендует использовать JOIN. Вот запрос, выдающий нужный результат:

SELECT table1.field1_id, table2.field2_name FROM table1
LEFT JOIN table2 ON table1.field2_id=table2.field2_id

Но у меня возникли некоторые сомнения относительно скорости работы с такими запросами - таблицы обещают быть здоровенными (миллионы записей в одной и десятки тысяч - в другой), так что меня шибко волнует вопрос: не будет ли JOIN сильно томозить? И как можно в таком случае исправить положение? (Может быть есть способ попроще - чем-нибудь IFNULL обрабатывать или еще как...)

Заранее спасибо за помощь.


[Это сообщение - спам!]

Последние сообщения из форума

Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
11876



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |