|
|
|
|
|
для: Sfinks
(18.01.2013 в 13:40)
| | Да кто вам сказал, что его надо применять везде не попадя - вы придумываете опять что-то, ею Богу, я такого не говорил, лишь привел что будет с вашим запросом без LEFT.
Зачем же обрывать вопрос, я только не понимаю
все "file_name", принадлежащие "suggestions", которые в свою очередь пренадлежат "Vasya"
Васи нет в files и все приехали, но есть в suggestions.
Спорить с вами, да куда там. | |
|
|
|
|
|
|
|
для: lutsk
(18.01.2013 в 13:10)
| | Вот еще статья по той же теме. Мне кажется более наглядной.
http://www.getinfo.ru/article610.html | |
|
|
|
|
|
|
|
для: lutsk
(18.01.2013 в 10:30)
| | > Значит придется двойным foreach с запросом к базе при каждой итерации обходиться..
Ни в коем случае!
Вообще обращение к БД в цикле - это очень плохо. Всегда нужно стараться этого избежать. А если это не возможно, значит не правильно спроектирована сама БД.
Получайте все данные одним запросом (как я показал или, если возможна ситуация, когда конкретной suggestion_id не соответствует ни один файл, то заменив JOIN на LEFT JOIN) и уже на клиенте разбирайте результат какими угодно циклами. | |
|
|
|
|
|
|
|
для: oradev
(18.01.2013 в 09:29)
| | У вас самоцель со мной поспорить чтоли?
Я говорю о том, что если ВАШ пример НЕ ВОЗМОЖЕН по логике данных (а такие примеры сплошь и рядом), то и LEFT не нужен.
Кроме того, ЧИТАЙТЕ УСЛОВИЕ!
> вытащить все "file_name", принадлежащие "suggestions"
В первую очередь нужны файлы, а не suggestions с файлами или без них.
Поэтому JOIN, JEFT JOIN, RIGHT JOIN, CROSS JOIN нужно использовать там где это надо, а не везде где не попадя. | |
|
|
|
|
|
|
|
для: Valick
(18.01.2013 в 11:09)
| | Спасибо, - ознакомлюсь обязательно! | |
|
|
|
|
|
|
|
для: oradev
(18.01.2013 в 10:38)
| | Так видимо и сделаю. | |
|
|
|
|
|
|
|
|
для: lutsk
(18.01.2013 в 10:30)
| | Автор, а что вы хотите получить на выходе ?
Развернутое дерево ?
Гораздо лучше предварительно загрузить данные в массив из базы, ключом будет родитель, а элементами например объект - соответствующей вашей каждой строке из базы.
А получить дерево одним запросом можно, например предварительно отсоритовав дерево. | |
|
|
|
|
|
|
|
для: Sfinks
(18.01.2013 в 00:24)
| | Такой запрос я уже пробовал. На уровне базы данных вроде древовидной структуры не реализовать. Значит придется двойным foreach с запросом к базе при каждой итерации обходиться.. | |
|
|
|
|
|
|
|
для: Sfinks
(18.01.2013 в 09:14)
| | Sfinks, автор привел структуру, а ваш запрос без LEFT ничего не вернет вообще в случаи который привел я , не надо придумывать. | |
|
|
|
|