SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 05.06.2012 21:21:09

kodavr
Участник
Зарегистрирован: 05.06.2012
Сообщений: 1

Помощь по запросу SELECT с примером

Пожалуйста, помогите с запросом SELECT.

Упрощенный вариант что имеем:
       
TABLE: persons
id        (ID человека, auto_increment)
birthdate (дата рождения)

TABLE: companies
id  (ID компании, auto_increment)
inn (ИНН)
kpp (КПП)

TABLE: objects
o_id      (ID объекта, auto_increment)
o_type    (тип объекта, человек (persons): 1, компания (companies): 2)
o_name    (название объекта)
o_data_id (ID расширенных данных объекта в другой таблице, в зависимости от типа объекта o_type)

Имеем:

objects   (1, 1, 'Иванов Иван Иванович', 1);
objects   (2, 2, 'ООО Ромашка',          1);
persons   (1, '01.01.1970');
companies (1, '63160000, 631601001');

Одна запись в таблице objects соответствует одной записи в одной из других таблиц (в зависимости от типа объекта o_type)

Задача - получить список компаний, без использования поля o_type

Запрос сейчас:

SELECT * FROM objects o, companies c WHERE o.o_data_id = c.id

Проблема: выдает два результата вместо одного.

ЕСТЬ ЛИ РЕШЕНИЕ НА УРОВНЕ ИЗМЕНЕНИЯ ТЕКСТА ЗАПРОСА SELECT?

P.S. Такие решения, как добавить в запрос 'WHERE o_type = 2' или
добавить в таблицы persons, companies идентификатор обратной связи с объектом, например, object_id и искать через "WHERE c.object_id = o.o_id"
известны, но нежелательны.

Неактивен

 

#2 05.06.2012 22:46:54

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Помощь по запросу SELECT с примером

Искать в o_name слова типа "ООО", "АО", "ОАО" и т.д. smile

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson