|
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,
версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
11876
|
|