Задавайте вопросы, мы ответим
Вы не зашли.
короче. че-то я парю с join. объясните мне вот что. есть заврос.
select n.nid from
node n left join (content_type ct, node n2 on ct.nid=n2.nid and n2.uid=1) on ct.some_field=n.nid
я до этого работал с фаирбердом. если мой маразм мне не изменяет то там то что в скопкав приведется к виду
select * from content_type ct, node n2 where ct.nid=n2.nid and n2.uid=1
а потом уже результаты этого действия будут сджойнены к n по условию ct.some_field=n.nid.
а майскл почему-то делает это так
select n.nid from
node n
left join content_type c on ct.some_field=n.nid
left join node n2 on ct.nid=n2.nid and n2.uid=1
т.е такое ощущение что он просто игнорирует скобки, нах! а они ведь указывают на то что сджойнить-то надо не каждую таблицу по отдельности, а результат взаимодействия этих таблиц.
так и дожно быть? на самом деле майскл так интерпретирут запросы или я пишу че-то не так. может тут есть какой-то специальный джойн?. спасибо.
Отредактированно tbazadaykin (11.09.2009 14:19:37)
Неактивен
А какая у вас версия? До 5.0.1 в таком запросе скобки будут проигнорированны. После нет.
Неактивен
ааа, вот где собака зарыта.
а если я запрос переписываю вот так
select n.nid from
node n natural left join (content_type ct inner join node n2 on ct.nid=n2.nid and n2.uid=1) on ct.some_field=n.nid
он мне говорит что не пральный синтаксис "on ct.some_field=n.nid". это тоже по этой же причине. и вообще, я как почитал в мануалах left join это тоже самое что и cross join. это так? я прально понял?
Отредактированно tbazadaykin (11.09.2009 14:43:43)
Неактивен
1. Постарайтесь писать по-русски на этом форуме, иначе мы Вам помочь ничем не сможем.
2. Не употребляйте матерные выражения — тематика форума не такова, чтобы люди читали такую речь.
3. Ваш запрос не несет смысла, поэтому он может быть обработан как угодно. Если Вы подразумеваете вложенный SELECT — напишите его. Все, что Вы подразумеваете, но не написали, — может быть трактовано иначе.
Неактивен
Нет. CROSS JOIN это синоним LEFT JOIN.
Неактивен
понятно. спасибо.
еще вопрос.
например есть запрос select id from table;
возвращает
id
1
2
3
4
5
есть какая нибудь функция чтобы вернуть
1,2,3,4,5
ну что-то вроде select somefunction(',',id) from table;
Неактивен
group_concat()
Неактивен