Forum Webscript.Ru

Общие => Базы данных => Тема начата: NР от 06 Февраля 2005, 20:15:19

Название: Помогите составить запрос, плз
Отправлено: от 06 Февраля 2005, 20:15:19
Люди, помогите, пожалуйста, правильно построить запрос mysql.
В базе имеется две таблицы.
В одной (picture) хранится информация, т.е. описание товара, в ряд включен идентификатор (столбец был почему-то назван notice) и номер категории в каталоге (id_cat).
Во второй (visiblestatus) содержится всего две колонки idvisible и idvisiblestatus
Первая колонка содержит значение идентификатора (в таблице picture он именуется как notice). Во второй колонке стоит статус - 1 или 0.
Так вот, не могу построить запрос по следующему алгоритму:
1. Выбрать ячейки notice из таблицы picture, id_cat=4.
2. Выбрать из таблицы visiblestatus значение idvisiblestatus, где notice=idvisible.
3. Вывести 10 строк из таблицы picture, у которых picture.id_cat=4 и visiblestatus.idvisiblestatus=0
Реально ли вообще сделать это одним запросом?
Заранее спасибо!
Название: Помогите составить запрос, плз
Отправлено: Макс от 07 Февраля 2005, 01:21:19
SELECT p.* FROM picture  p
INNER JOIN visiblestatus v ON v.idvisible = p.notice
WHERE v.idvisiblestatus=0 AND p.id_cat=4 LIMIT 0,10

?
Название: Помогите составить запрос, плз
Отправлено: от 20 Февраля 2005, 17:11:40
Макс, спасибо, работает.
Только вот долго запрос выполняется. В таблице visiblestatus 145 тясяч строк, в таблице picture 50 тысяч. Вот в этой таблице visiblestatus хранится информация о доступности товара (0 и 1).
Посоветуешь что-нибуь более оптимательное?
Название: Помогите составить запрос, плз
Отправлено: Макс от 20 Февраля 2005, 17:24:34
по полям v.idvisible ,  p.notice индексы стоят ?
Название: Помогите составить запрос, плз
Отправлено: от 20 Февраля 2005, 17:37:28
Нет, по этим полям индексы не стоят.