Выбрать идентификаторы по условию - MySQL
Формулировка задачи:
Здравствуйте. Помогите пожалуйста справиться с одной проблемой.
Есть две таблицы - company и company_contact.
в первой хранятся имена компаний, во второй контактная информация. Выглядит это примерно так:
Задача стоит так. Нужно выбрать те компании, которые не имеют адреса. То есть в нашем случае Ernst And Young и Xerox.
Если я делаю так:
То в выборку попадают все компании. Ну в принципе понятно почему. Как решить проблему?
Заранее спасибо!
company ------------------------------------------- id Name ------------------------------------------- 1 McDonalds 2 Ernst And Young 3 Xerox company_contact ------------------------------------------ id company_id type value ------------------------------------------ 1 1 address Sonne street 9 2 1 phone 09885-521-47 3 1 email removed@mail.ru 4 2 phone 0222147 5 3 phone 0985541 6 3 email removed@mail.ru
SELECT * FROM company WHERE id IN ( SELECT company_id FROM company_contact WHERE company_contact <> 'address' )
Решение задачи: «Выбрать идентификаторы по условию»
textual
Листинг программы
SELECT * FROM company WHERE id NOT IN ( SELECT company_id FROM company_contact WHERE company_contact = 'address' )
Объяснение кода листинга программы
- Код написан на SQL (Structured Query Language), который является стандартным языком запросов к реляционным базам данных.
- SELECT * FROM company - выбираются все поля из таблицы
company
. - WHERE id NOT IN (SELECT company_id FROM company_contact WHERE company_contact = 'address') - выбираются только те строки из таблицы
company
, у которых значение идентификатора не входит в список идентификаторов из таблицыcompany_contact
, где значение поляcompany_contact
равно 'address'. - В SQL-запросе используется синтаксис сравнения строк с помощью оператора
=
. - Значение 'address' в скобках является константой (значением), которое сравнивается со значением поля
company_contact
в таблицеcompany_contact
. - Результатом запроса будет набор данных, содержащий только идентификаторы (поле
id
) из таблицыcompany
, которые не соответствуют условию, указанному в запросе.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д