Общие > Базы данных
вложенный запрос в MySQL
Berkut:
товарищи! просветите, неужели в майсикуль нельзя сделать такой запрос
DELETE FROM Cat WHERE SubCatID IN (SELECT SubCatID FROM SubCat WHERE CID=2);
И можно-ли вообще выполнить подобную задачу не формируя IN(..., ..., ...)
вручную?
ThE0ReTiC:
Berkut
Вложенный - никак (точнее вроде в 5 версии появилось нечто подобное - но это удел экспериментаторов)
Используй (попробуй) PostgreSQL
тебе чего надо? удалить все категории с определенным номером подкатегории?
Berkut:
--- Цитировать ---ThE0ReTiC:
Используй (попробуй) PostgreSQL
--- Конец цитаты ---
Да я-бы с радостью, только у хостера его нет. И вообще мало хостеров PostgreSQL
--- Цитировать ---ThE0ReTiC:
тебе чего надо? удалить все категории с определенным номером подкатегории?
--- Конец цитаты ---
малость обшибся.
DELETE FROM Goods WHERE SubCatID IN (SELECT SubCatID FROM SubCat WHERE CID=2);
нужно удалить все товары всех под-категорий(SubCatID), относящихся к определённой категории(CID)
(есть 3 таблицы: 1)категории, 2)подкатегории(связаны с ид категорий), 3)товары(связаны с id подкатегорий)
пришлось сделать в 2 запроса.
интересно, можно-ли как-нибудь сделать это одним запросом? или может архитектура базы неправильная?
Chs:
--- Цитировать ---интересно, можно-ли как-нибудь сделать это одним запросом?
--- Конец цитаты ---
Можно.
Читать в доке начаиная от subselect или поиск по форуму рулит.
Berkut:
Chs говоришь одно, ThE0ReTiC - другое, и кто-же прав?
вот что нашёл в мане о сабселект:
``Find number, dealer, and price of the most expensive article.\'\'
In ANSI SQL this is easily done with a subquery:
SELECT article, dealer, price
FROM shop
WHERE price=(SELECT MAX(price) FROM shop)
In MySQL (which does not yet have subselects), just do it in two steps:
Get the maximum price value from the table with a SELECT statement.
Using this value compile the actual query:
SELECT article, dealer, price
FROM shop
WHERE price=19.95
Chs может приведёшь пример?
Навигация
Перейти к полной версии