Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 09.09.2014, 11:40
Аватар для Duda.Ml1986@gmail.com
Профессор
Отправить личное сообщение для Duda.Ml1986@gmail.com Посмотреть профиль Найти все сообщения от Duda.Ml1986@gmail.com
 
Регистрация: 01.09.2011
Сообщений: 263

SQL подскажите пожалуйста с запросом
Всем привет.

Есть таблица отношений пунктов меню.

Первый пункт имеет параметр
Родительский элемент
id = 1, pos = 'dep', par=0

Дочерний элемент №1
id = 365, pos = 'тут что угодно', par=1

Дочерний элемент №2
id = 5987, pos = 'тут что угодно', par=365


Нижеприведенный запрос приводит только элементы РОДИТЕЛЬСКИЕ И ДОЧЕРНИЕ №1 но как добавить еще №2
SELECT * 
FROM `jblog_menupoint` as F
JOIN `jblog_menupoint` as S
ON  S.`par` = F.`id_menupoint` 
WHERE F.`pos` = 'dep'



Так работает некорректно
SELECT * 
FROM `jblog_menupoint` as F
JOIN `jblog_menupoint` as S
ON  S.`par` = F.`id_menupoint`
JOIN `jblog_menupoint` as T
ON T.`par`=  S.`id_menupoint` 
WHERE F.`pos` = 'dep'


Благодарен за пинок в нужном направлении.
Ответить с цитированием
  #2 (permalink)  
Старый 09.09.2014, 12:18
Аватар для Vlasenko Fedor
Профессор
Отправить личное сообщение для Vlasenko Fedor Посмотреть профиль Найти все сообщения от Vlasenko Fedor
 
Регистрация: 13.03.2013
Сообщений: 1,572

Nested Set
Ответить с цитированием
  #3 (permalink)  
Старый 09.09.2014, 13:24
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,228

Duda.Ml1986@gmail.com, я х/з, что тебе нужно в итоге... Но в книжке пример соединения нескольких таблиц выглядит так

Select
   *
From 
   aaa As a Join bbb As b
      On a.fld=b.fld,
   bbb as b Join ccc A c
      On b.prm=c.prm

Т.е. синтаксис немного не такой как у тебя...

Сообщение от Duda.Ml1986@gmail.com
Благодарен за пинок в нужном направлении.
Ну и декартов куб так же никто не отменял...

SELECT 
   * 
FROM 
   `jblog_menupoint` as F, 
   `jblog_menupoint` as S, 
   `jblog_menupoint` as T
WHERE 
   S.`par` = F.`id_menupoint`
   And
   T.`par`=  S.`id_menupoint`
   And
   F.`pos` = 'dep'
Ответить с цитированием
  #4 (permalink)  
Старый 23.09.2014, 18:27
Аватар для Duda.Ml1986@gmail.com
Профессор
Отправить личное сообщение для Duda.Ml1986@gmail.com Посмотреть профиль Найти все сообщения от Duda.Ml1986@gmail.com
 
Регистрация: 01.09.2011
Сообщений: 263

Сообщение от ksa Посмотреть сообщение
Duda.Ml1986@gmail.com, я х/з, что тебе нужно в итоге... Но в книжке пример соединения нескольких таблиц выглядит так

Select
   *
From 
   aaa As a Join bbb As b
      On a.fld=b.fld,
   bbb as b Join ccc A c
      On b.prm=c.prm

Т.е. синтаксис немного не такой как у тебя...


Ну и декартов куб так же никто не отменял...

SELECT 
   * 
FROM 
   `jblog_menupoint` as F, 
   `jblog_menupoint` as S, 
   `jblog_menupoint` as T
WHERE 
   S.`par` = F.`id_menupoint`
   And
   T.`par`=  S.`id_menupoint`
   And
   F.`pos` = 'dep'
Все конечно классно. Но вот эта беда возвращает не совсем так как надо, а именно:

id title url id title url

и переименовывать не вариант(точнее менее желательный.)
Ответить с цитированием
  #5 (permalink)  
Старый 23.09.2014, 20:57
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,228

Сообщение от Duda.Ml1986@gmail.com
Но вот эта беда возвращает не совсем так как надо
Тогда проще тебе привести пример таблиц с данными и показать, что нужно получить в итоге...
А тот так просто пальцем в небо.
Ответить с цитированием
  #6 (permalink)  
Старый 02.10.2014, 18:52
Аватар для Duda.Ml1986@gmail.com
Профессор
Отправить личное сообщение для Duda.Ml1986@gmail.com Посмотреть профиль Найти все сообщения от Duda.Ml1986@gmail.com
 
Регистрация: 01.09.2011
Сообщений: 263

Таблица

id title par
1 ttt 0
2 ppp 1
3 xxx 2

Нужно выбрать всех потомков ttt
Так что бы результат был как сама таблица, то есть идентичные имена столбов.


Select id,title,par
From table
where par = 0

union

Select t2.id,t2.title,t2.par
From
table as t,
table as t2,
where t.par = 0
and t2.par = t.id



и так далее до нужной глубины вложенности, но вот как если глубина неизвеста?

Как то через ДО и лял ля ля.
Ответить с цитированием
  #7 (permalink)  
Старый 02.10.2014, 21:06
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,228

Сообщение от Duda.Ml1986@gmail.com
так далее до нужной глубины вложенности, но вот как если глубина неизвеста?
Я не знаю рекурсивной выборки по средству SQL-запроса...
Ответить с цитированием
  #8 (permalink)  
Старый 03.10.2014, 11:03
Аватар для Duda.Ml1986@gmail.com
Профессор
Отправить личное сообщение для Duda.Ml1986@gmail.com Посмотреть профиль Найти все сообщения от Duda.Ml1986@gmail.com
 
Регистрация: 01.09.2011
Сообщений: 263

Один умный человек подсказал куда рыть

Comman teble extension

Так что если кому понадобится, копайте туда)

Ksa, спасибо за участие.
Ответить с цитированием
  #9 (permalink)  
Старый 03.10.2014, 22:17
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

Сообщение от Duda.Ml1986@gmail.com
Comman teble extension
это на каком языке?
Ответить с цитированием
  #10 (permalink)  
Старый 09.10.2014, 12:12
Аватар для Duda.Ml1986@gmail.com
Профессор
Отправить личное сообщение для Duda.Ml1986@gmail.com Посмотреть профиль Найти все сообщения от Duda.Ml1986@gmail.com
 
Регистрация: 01.09.2011
Сообщений: 263

Сообщение от bes Посмотреть сообщение
это на каком языке?
Common Table Expressions(CTE) in SQL SERVER 2008
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подскажите пожалуйста по JQUERY Denis_VB Javascript под браузер 1 13.08.2014 17:02
Управление скроллом "а-ля тач" HonesT Элементы интерфейса 2 27.08.2013 14:25
Подскажите пожалуйста как мне можно изменить этот скрипт Niko Общие вопросы Javascript 3 15.04.2013 15:35
Подскажите пожалуйста по плееру scorpius Общие вопросы Javascript 1 30.10.2012 03:00
Подскажите пожалуйста с трансформацией изображения Deniskan Общие вопросы Javascript 23 18.03.2010 19:20