Я только начинаю, это должно быть просто, но я не смог найти хороший источник, особенно с переключением с 1,5 на 1,6 / 1,7 / 2,5.
Создание компонента и среди другихпроблемы продолжают сталкиваться с проблемами синтаксиса.
Например, вот один способ, которым я строю запрос: [TYPE 1]
$query->SELECT('u.id as UserID
, u.name AS Name
, uppi.profile_value AS Hair
, uppi2.profile_value AS Height
');
$query->FROM (' #__users AS u');
$query->LEFTJOIN (' #__user_profiles AS uppi ON u.id = uppi.user_id AND uppi.ordering = 1 ');
$query->LEFTJOIN (' #__user_profiles AS uppi2 ON u.id = uppi2.user_id AND uppi2.ordering = 2 ');
$query->GROUPBY (' u.id
, u.name
, uppi.profile_value
');
Другой способ: [TYPE 2]
$query->SELECT('u.id as UserID
, u.name AS Name
, uppi.profile_value AS Hair
, uppi2.profile_value AS Height
')
->FROM (' #__users AS u')
->LEFTJOIN (' #__user_profiles AS uppi ON u.id = uppi.user_id AND uppi.ordering = 1 ')
->LEFTJOIN (' #__user_profiles AS uppi2 ON u.id = uppi2.user_id AND uppi2.ordering = 2 ')
->GROUPBY (' u.id
, u.name
, uppi.profile_value
');
Запутанная часть в обоих случаях заключается в том, что вызовы mysql, такие как "LEFTJOIN", представляют собой одно слово вместо двух.Итак, если я хочу использовать INSERT…ON DUPLICATE KEY UPDATE
, я полностью потерян.
Вот третий: [TYPE 3]
$query->SELECT('u.id as UserID
, u.name AS Name
, uppi.profile_value AS Hair
, uppi2.profile_value AS Height
');
$query->FROM (' #__users AS u');
$query->JOIN ('LEFT', ' #__user_profiles AS uppi ON u.id = uppi.user_id AND uppi.ordering = 1 ');
$query->JOIN ('LEFT', ' #__user_profiles AS uppi2 ON u.id = uppi2.user_id AND uppi2.ordering = 2 ');
$query->GROUPBY (' u.id
, u.name
, uppi.profile_value
');
$query->ORDER ('u.name ASC');
Это еще один способ, которым явидел запросы, созданные, но не могу приступить к работе [ EDITED - работает сейчас, спасибо @cppl!] [Type 4]
$query= "SELECT `u`.`id` as UserID
, `u`.`name` AS Name
, `uppi`.`profile_value` AS Hair
, `uppi2`.`profile_value` AS Height
FROM `#__users` AS u
LEFT JOIN `#__user_profiles` AS uppi ON `u`.`id` = `uppi`.`user_id` AND `uppi`.`ordering` = 1
LEFT JOIN `#__user_profiles` AS uppi2 ON `u`.`id` = `uppi2`.`user_id` AND `uppi2`.`ordering` = 2
";
I 'мы прошли учебник по Joomla MVC и Линде ... ни один из них на самом деле не решает эту проблему, кроме "вот какой-то код - PLOP".) Есть ли различия между ними?
2) Есть ли причина использовать один метод над другим?
3) Есть ли хороший источник для изучения различных способов их построения?Я искал несколько часов и не нашел ничего всеобъемлющего.
Спасибо!