|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
07.04.2011, 19:35 | #1 |
Пользователь
Регистрация: 19.11.2010
Сообщений: 21
|
SQL запрос. Не выводит строки, где в одном поле присутствует NULL, хотя идет проверка
Работа ведется с MySQL
Есть 3 таблицы Абоненты и их тарифы - Callerlist с полями CallerID AutoInc CallerFIO ФИО (обязательное поле) CallerTarPhID Тариф телефона (обязательное поле) CallerTarIntID Тариф интернета (НЕобязательное поле) по умолчанию хранится NULL Заполнение 1 Иванов ИИ 1 1 2 Сидоров СС 2 2 3 Петров ПП 3 NULL Тарифы телефона - TPList TPID AutoInc TPName Название (обязательное поле) Заполнение 1 Повременный 2 Социальный 3 Безлимитный Тарифы интернета - TIList TIID AutoInc TIName Название (обязательное поле) Заполнение 1 Безлимитный 2 Планета Сделать запрос так, чтобы вывел Иванов ИИ Повременный Безлимитный Сидоров СС Социальный Планета Петров ПП Безлимитный (пустое поле) Вся проблема с когда CallerTarIntID=NULL SELECT CallerFIO, TPName, TIName FROM callerlist, tplist, tilist WHERE CallerTarPh = TPID AND (CallerTarInt = NULL OR CallerTarInt = TIID) Не выводит, когда у человека нет интернета. Выводит только тех у кого есть, а мне надо всех. |
07.04.2011, 20:14 | #2 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
ЗАПОМНИТЕ. НА БУДУЩЕЕ.
Понять это НЕЛЬЗЯ. Это надо ТОЛЬКО ЗАПОМНИТЬ! Значение NULL НЕ РАВНЯЕТСЯ значению NULL и, одновременно, оно НЕ НЕ РАВНЯЕТСЯ! т.е. если есть строчка где в поле CallerTarInt стоит NULL - то и запрос select * from callerlist CallerTarInt = NULL не вернёт эту запись, ни запрос select * from callerlist CallerTarInt <> NULL не вернёт! ЕДИНСТВЕННЫЙ правильный способ выбрать запись с NULL это: Код:
|
07.04.2011, 20:47 | #3 |
Пользователь
Регистрация: 19.11.2010
Сообщений: 21
|
Я начинающий. Помогите финальный запрос, чтоб вывел когда выводит и с Null и не с Null
как в результате должно получится. |
07.04.2011, 20:58 | #4 |
Пользователь
Регистрация: 19.11.2010
Сообщений: 21
|
Функция COALESCE() как я понял объединяет столбцы. А мне нужно объединть строки с Null и без него - то есть в столбце ТарифИнтернетаНазвание
|
07.04.2011, 21:23 | #5 |
Пользователь
Регистрация: 02.04.2011
Сообщений: 48
|
Не знаю как мускуль, а на других бд такой вариант прокатывал
Код:
|
07.04.2011, 21:30 | #6 |
Пользователь
Регистрация: 19.11.2010
Сообщений: 21
|
Не идет, ругается на синтаксис
|
07.04.2011, 22:14 | #7 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
вот, попробуйте
вариант 1 Код:
Код:
|
07.04.2011, 22:41 | #8 |
Пользователь
Регистрация: 19.11.2010
Сообщений: 21
|
Да, спасибо большое!
Разобрался. |
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
NULL в sql-запросах | _SERGEYX_ | БД в Delphi | 5 | 27.10.2010 18:16 |
запрос с is null | Ks2010 | БД в Delphi | 14 | 22.07.2010 21:50 |
Картинка и текст в одном поле таблицы | _SERGEYX_ | БД в Delphi | 0 | 23.01.2010 16:19 |
Выводит ошибку "Unclarified identifier", хотя недавно запускалась в другой программе | Alex Cones | Общие вопросы Delphi | 2 | 20.04.2009 21:31 |
если поле Patr пусто или null то пустую строку возвращает | azat | БД в Delphi | 5 | 01.02.2008 13:05 |