Forum Webscript.Ru
Общие => Базы данных => Тема начата: NР от 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
Реально ли вообще сделать это одним запросом?
Заранее спасибо!
-
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
?
-
Макс, спасибо, работает.
Только вот долго запрос выполняется. В таблице visiblestatus 145 тясяч строк, в таблице picture 50 тысяч. Вот в этой таблице visiblestatus хранится информация о доступности товара (0 и 1).
Посоветуешь что-нибуь более оптимательное?
-
по полям v.idvisible , p.notice индексы стоят ?
-
Нет, по этим полям индексы не стоят.