Задавайте вопросы, мы ответим
Вы не зашли.
Пожалуйста, помогите с запросом 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"
известны, но нежелательны.
Неактивен
Искать в o_name слова типа "ООО", "АО", "ОАО" и т.д.
Неактивен