Общие > Базы данных

Как написать это, без вложенного запроса

(1/2) > >>

Lord_DEMON:
Люди, ПЛЗ, ХЕЛП

Вот такая есть штука

SELECT DISTINCT pg1.id
FROM
objects AS o1, permissions AS p1, pages AS pg1
WHERE
p1.obj=o1.id AND pg1.id=o1.pages AND p1.permit=1
AND pg1.parent NOT IN
(SELECT pages2.id FROM objects AS o2, permissions AS p2, pages AS pg2
WHERE p2.obj=o2.id AND pg2.id=o2.pages AND p2.permit=1)

Надо ее переписать под MySQL без подзапроса.
Я с этим LEFT JOIN уже все утро потратил, не получается, помогите ПЛЗ

Lord_DEMON:
ошибка небольшая в подзапросе

(SELECT pg2.id FROM objects AS o2, permissions AS p2, pages AS pg2
WHERE p2.obj=o2.id AND pg2.id=o2.pages AND p2.permit=1)

но суть от этого не меняется, ПОМОГИТЕ ПЛЗ

Lord_DEMON:
Возможно поможет цель, с которой это пишется.
Каждый объект имеет одного родителя
при этом у родителя может быть сколько угодно детей
задача, выбрать те объекты, которые яляются минимальными корнями
то есть те объекты, у которых нет родителей в списке объектов, к которым разрешен доступ.
в результате получа.тся несколько корней, от которых строятся деревья объектов.

Lord_DEMON:
Хорошо, тогда другой вопрос, как написать LEFT JOIN  не для таблицы, а для запроса.
то есть найти отстутствие между результатами двух запросов

fidget:

--- Цитировать ---найти отстутствие между результатами двух запросов
--- Конец цитаты ---


Результаты 2х запросов сохраняй в temporary table, а потом органицуешь еще один запрос используя эти 2 таблицы

Навигация

[0] Главная страница сообщений

[#] Следующая страница

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 
Перейти к полной версии