Форум программистов, компьютерный форум, киберфорум
Наши страницы
MySQL
Войти
Регистрация
Восстановить пароль
 
ztDan4ik
0 / 0 / 0
Регистрация: 22.09.2011
Сообщений: 10
#1

Нужно разобратся в запросе MySQL - MySQL

22.09.2011, 11:07. Просмотров 869. Ответов 5
Метки нет (Все метки)

Доброе время суток. Возможно пишу не в том разделе, заранее прошу извинения.
Прошу помочь разобраться в запросе, который находится ниже:

SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
$query = ' SELECT p.*,c.name as name_category,t.name as name_type,cy.name as name_country,s.name as name_state,l.name as name_locality,pf.name as name_profile,pf.logo_image as logo_image_profile, '       
 . ' CASE WHEN CHAR_LENGTH(p.alias) THEN CONCAT_WS(":", p.id, p.alias) ELSE p.id END as Pslug,' 
 . ' CASE WHEN CHAR_LENGTH(c.alias) THEN CONCAT_WS(":", c.id, c.alias) ELSE c.id END as Cslug,' 
 . ' CASE WHEN CHAR_LENGTH(cy.alias) THEN CONCAT_WS(":", cy.id, cy.alias) ELSE cy.id END as CYslug,' 
 . ' CASE WHEN CHAR_LENGTH(s.alias) THEN CONCAT_WS(":", s.id, s.alias) ELSE s.id END as Sslug,'       
 . ' CASE WHEN CHAR_LENGTH(l.alias) THEN CONCAT_WS(":", l.id, l.alias) ELSE l.id END as Lslug, '    
 . ' CASE WHEN CHAR_LENGTH(t.alias) THEN CONCAT_WS(":", t.id, t.alias) ELSE t.id END as Tslug ' 
 . ' FROM #__properties_products as p '    
 . ' LEFT JOIN #__properties_country AS cy ON cy.id = p.cyid '             
 . ' LEFT JOIN #__properties_state AS s ON s.id = p.sid ' 
 . ' LEFT JOIN #__properties_locality AS l ON l.id = p.lid ' 
 . ' LEFT JOIN #__properties_category AS c ON c.id = p.cid '    
 . ' LEFT JOIN #__properties_type AS t ON t.id = p.type ' 
 . ' LEFT JOIN #__properties_profiles AS pf ON pf.mid = p.agent_id '          
 . ' WHERE p.published = 1 AND p.parent = '.$id          
 . ' order by p.ordering ';
Этот запрос был изъят у одного из компонентов для CMS Joomla. Очень буду благодарен тому кто поможет разобраться в данном запросе. Если нужна структура таблиц - обязательно отпишу.

P.S. больше всего интересуют приставки p. s. i. t. и т.д. перед именами колонок.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.09.2011, 11:07
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Нужно разобратся в запросе MySQL (MySQL):

Ошибка в MySQL запросе
Начал изучать php и mysql по Кевину Янку, и сразу на первом примере вылетает...

Ошибка при запросе MYSQL
Добрый день, возникла ошибка Warning: mysql_fetch_assoc() expects parameter 1...

Ошибка при запросе в Mysql
Помогите пожалуйста, я непонимаю как эту ошибку исправить, пробелов и пустых...

Выдает ошибку при запросе в MySQL
Ошибка :#1064 - You have an error in your SQL syntax; check the manual that...

Как в запросе MySql получить имя вместо id
Здравствуйте! Может кто поможет с запросом? Есть таблица Action. Структура -...

Нужно правильное условия в запросе!
Здравствуйте) У меня есть бд и там есть такая таблица id user_id...

5
Nazz
WEB-developer
896 / 727 / 80
Регистрация: 12.03.2009
Сообщений: 2,802
Записей в блоге: 2
22.09.2011, 11:16 #2
приставки p. s. i. t. ето
SQL
1
#__properties_products AS p
мы просто назвали таблицу проще, чтобы не писать
SQL
1
#__properties_products.имья_колонки
так мы делаем ето проще
SQL
1
p.имья_колонки
вот так вот
1
ztDan4ik
0 / 0 / 0
Регистрация: 22.09.2011
Сообщений: 10
22.09.2011, 11:45  [ТС] #3
а как насчёт CASE WHEN CHAR_LENGTH THEN CONCAT_WS ?

Возможно кто-то знает хорошую документацию, мануал по этой части? Желательно на русском.
0
Nazz
WEB-developer
896 / 727 / 80
Регистрация: 12.03.2009
Сообщений: 2,802
Записей в блоге: 2
22.09.2011, 12:00 #4
SQL
1
CASE WHEN CHAR_LENGTH(c.alias)
выбирает естли строка не пустая, и естли она не пустая то

SQL
1
CONCAT_WS(":", p.id, p.alias)
обеденяем строки используя разделитель :
в инном случаи выбираем только
SQL
1
p.id
0
ztDan4ik
0 / 0 / 0
Регистрация: 22.09.2011
Сообщений: 10
22.09.2011, 12:17  [ТС] #5
Nazz, большое спасибо, все становится яснее И последнее что меня интересует в этом запросе - LEFT JOIN ON

SQL
1
2
3
4
5
6
. ' LEFT JOIN #__properties_country AS cy ON cy.id = p.cyid '             
 . ' LEFT JOIN #__properties_state AS s ON s.id = p.sid ' 
 . ' LEFT JOIN #__properties_locality AS l ON l.id = p.lid ' 
 . ' LEFT JOIN #__properties_category AS c ON c.id = p.cid '    
 . ' LEFT JOIN #__properties_type AS t ON t.id = p.type ' 
 . ' LEFT JOIN #__properties_profiles AS pf ON pf.mid = p.agent_id '
Если разъясните еще этот нюанс - буду вдвойне благодарен
0
Nazz
WEB-developer
896 / 727 / 80
Регистрация: 12.03.2009
Сообщений: 2,802
Записей в блоге: 2
22.09.2011, 15:11 #6
SQL
1
LEFT JOIN
ето обединение нескольких таблиц в одну для выборки. тоесть например у Вас есть таблица
#__properties_country
и таблица
#__properties_products as p

Вам нужно вытащить все данные о продукте, а в таблице #__properties_country ниходятся данные о стране где изготовляется етот продукт.
вот чтобы не делать
SQL
1
2
SELECT * FROM #__properties_products WHERE id=5
SELECT * FROM #__properties_country WHERE cyid=значение cyid c предидущей выборки
мы используем LEFT JOIN и обеденяем ети две таблицы по общему полю(однаковое для обоих таблиц)
тоесть делаем
SQL
1
LEFT JOIN #__properties_country AS cy ON cy.id = p.cyid
соответственно поля id и cyid находятся в разных таблицах, но данные в них соответствующие.
0
22.09.2011, 15:11
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.09.2011, 15:11
Привет! Вот еще темы с решениями:

Пожалуйста нужно разобраться с запросом Mysql! Одним запросом из двух таблиц / MySQL
У меня на главной странице существует вот такой запрос (он ниже), который...

Нужно ли учить MySQL?
Здравствуйте! Подскажите, нужно ли разбираться в MySQL, если я хочу, например,...

Нужно ли покупать лицензию на MySQL?
Здравствуйте! Хотел бы узнать нужно ли покупать лицензию на MYSQL. На сколько я...

Нужно написать программу на С# для работы с MySQL
Мне нужно создать программу на C#, которая работает с СУБД MySQL. С чего...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru