powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Запросы из нескольких таблиц
1 сообщений из 1, страница 1 из 1
Запросы из нескольких таблиц
    #33204594
Shutov Alexander
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Запросы из нескольких таблиц.
Читал книжку по SQL, там достаточно подробно описана эта тема, но у меня остлось несколько вопросов.

Как я понял при запросах из нескольких таблиц их нужно объеденять, т.е. находить пары (если 2 таблицы).

А если нужно сделать запрос из 3 таблиц, но в них нет полей предок/потомок?

Таблица 1
Поле Тип Атрибуты Ноль По умолчанию Дополнительно Действие
id int(11) Нет auto_increment
c_id int(11) Нет 0
prod int(100) Нет 0

Таблица 2
Поле Тип Атрибуты Ноль По умолчанию Дополнительно Действие
id int(11) Нет auto_increment
c_id int(11) Нет 0
prod_s int(100) Нет 0

Таблица 3
Поле Тип Атрибуты Ноль По умолчанию Дополнительно Действие
id int(11) Нет auto_increment
c_id int(11) Нет 0
spice int(100) Нет 0

Задача 1

Выбрать c_id, если table1.prod=param1 или table2.prod_s=param1 или table3.spice=param2

Делаю с помощью UNION - проблем нет

Задача 2

Выбрать c_id, если table1.prod=param1 или table2.prod_s=param1 и table3.spice=param2

Делаю так:

SELECT DISTINCT spec_prod.c_id, spec_prod_s.c_id, spec_spice.c_id FROM spec_prod, spec_prod_s, spec_spice WHERE spec_prod_s.c_id = spec_spice.c_id AND spec_spice.c_id = spec_prod.c_id AND (spec_prod.prod='$form:prod' AND spec_spice.spice='$form:spice') OR (spec_prod_s.prod='$form:prod' AND spec_spice.spice='$form:spice'

Мне кажется это не правильно.
+ Если c_id вообще не определено в table1 или table2, то c_id берется не зависимо от table3
...
Рейтинг: 0 / 0
1 сообщений из 1, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Запросы из нескольких таблиц
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]