Общие > Базы данных
Как написать это, без вложенного запроса
			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 таблицы
		
Навигация
Перейти к полной версии