Игорь_Vasinsky
16.05.2014 - 19:50
так ещё раз
3 таблицы: страницы - шаблоны - стили
связи все есть?
щас друзья приедут - там коньяк и беленькая - я даже не вспомню как ноут открыть)))
_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
neadekvat
16.05.2014 - 20:07
Два запроса:
1. Список всех стилей
2. Список страниц + стили, которые к каждой подключены.
При выводе используешь названия из первого запроса, основываясь на информации второго.
neadekvat
16.05.2014 - 20:07
Цитата (Игорь_Vasinsky @ 16.05.2014 - 19:50) |
щас друзья приедут - там коньяк и беленькая - я даже не вспомню как ноут открыть))) |
Блин, пятница же!
*** Offline ***
Zzepish
16.05.2014 - 20:11
neadekvat
да за два я запилю как два байта об асфатльт(
neadekvat
16.05.2014 - 20:13
Так пили. Тут нужны минимум два запроса. Хотя бы чисто по логике.
Zzepish
16.05.2014 - 20:27
neadekvat
я думаю- может как-то реально связать?
Может реально 1 поле общее запилить? просто, чтоб было?
ТОЧНО!
ПРосто добавлю поле со знаком 1! Проблема решена))) скорей-всего
Zzepish
16.05.2014 - 20:33
добавил поле `sql`, которое равно 1!
SELECT *
FROM
`pages`
INNER JOIN
`styles`
ON
`styles`.`sql`=`pages`.`sql`
LEFT JOIN
`styles_on_page`
ON
`styles`.`id` = `styles_on_page`.`style_id`
AND
`styles_on_page`.`page_id`=`pages`.`id`
ORDER BY `pages`.`id`
Все заработало! Я счастлив)
neadekvat
16.05.2014 - 20:40
Цитата (Zzepish @ 16.05.2014 - 20:33) |
Все заработало! Я счастлив) |
Извини, чел, но ты сделал страшную хрень. Надеюсь, мне не придется работать с твоим кодом.
Zzepish
16.05.2014 - 21:03
neadekvat
ну. Елси выводит все, как надо?
Zzepish
16.05.2014 - 21:07
neadekvatВопрос исчерпан! поле не понадобилось! Я впомнил про cross join! в и тоге мы получаем результат
SELECT *
FROM `pages`
CROSS JOIN `styles`
LEFT JOIN `styles_on_page` ON `styles`.`id` = `styles_on_page`.`style_id`
AND `styles_on_page`.`page_id` = `pages`.`id`
ORDER BY `pages`.`id` ASC , `styles_on_page`.`order` ASC
Теперь работал бы с кодом? :)?
neadekvat
16.05.2014 - 23:19
Список страниц и список стилей -- две разные сущности. Если они связаны (через третью таблицу, к примеру), то их логично тянуть в одном запросе. Несвязанные сущности в один запрос пихать, имхо, нелогично.
Мой код-ревью этот запрос бы не прошел (:
Zzepish
17.05.2014 - 00:18
neadekvat
Ты знаешь, как работает cross join?
neadekvat
17.05.2014 - 01:24
Знаю.
Zzepish
17.05.2014 - 01:37
neadekvat
тогда как ты можешь говорить, что оно не подходит?
Оно идеально подходит под задачу! И генерирует все так, как мне надо. В 1 ЗАПРОС!
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.