그냥 시작해야합니다. 이것은 간단한 것이어야합니다. 특히 1.5 ~ 1.6/1.7/2.5 전환으로 좋은 소스를 찾을 수 없었습니다.Joomla에서 쿼리를 작성하는 다른 방법은 무엇입니까?
구성 요소를 작성하는 등의 문제가 계속 발생하여 구문 문제가 발생합니다. [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
');
부분을 혼동 예를 들어
, 여기에 내가 쿼리를 작성하고있어 하나의 방법입니다 둘 다에 대해 "LEFTJOIN"과 같은 mysql 호출은 두 개가 아니라 한 단어입니다. 그렇다면 내가 사용하기를 원한다면 INSERT…ON DUPLICATE KEY UPDATE
나는 완전히 잃어 버렸습니다. 여기
$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');
이것은 내가 만든 쿼리를 본 적이 또 다른 방법입니다하지만 [편집을 할 동작하지 않습니다 - 지금 작업, 감사 @cppl을 !] [유형 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
";
나는 N ... 줌라 MVC 튜토리얼과 린다 겪었어요 어느 쪽이든 "여기에 코드가 있습니다. PLOP"을 넘어 실제로이 문제를 해결합니다.
References:
--//www.theartofjoomla.com/home/9-developer/135-database-upgrades-in-joomla-16.html
--//stackoverflow.com/questions/8467858/joomla-1-7-db-query-does-not-work-when-query-has-an-ampersand
--developer.joomla.org/standards/ch03s10.html
--forum.joomla.org/viewtopic.php?p=2506722
--forum.joomla.org/viewtopic.php?p=1200668
--docs.joomla.org/API16:JDatabaseQuery
--//fsadventures.com/2011/01/some-basic-joomla-database-call-functions/
--//www.sourcecodester.com/php/3863/updating-multiple-rows-mysql-using-php.html
--//stackoverflow.com/questions/7047471/mysql-query-syntax-error
질문 :
1) 이들 사이에 어떤 차이가 있습니까?
2) 다른 방법보다 한 가지 방법을 사용해야하는 이유가 있습니까?
3) 이들을 구축하는 다양한 방법을 배우기위한 좋은 출처가 있습니까? 나는 수 시간 동안 수색을했으며 포괄적 인 것을 발견하지 못했습니다.
감사합니다.
Joomla에 대해 알지 못하지만 일반적으로 나는 '중복 키 업데이트'를 사용하지 마십시오. 내가 쿼리를 시도하고 예외/오류를 생성하고 두 번째 쿼리와 그 오류에 대한 행동을 선호합니다. 필자는 상당히 다른 ORM과 DBAL 계층을 사용하고 있으며, 그 중 어느 것도 원시 API를 수행하는 데 필요한 원시 SQL 기능으로 되돌려 야하는 API에서이 기능을 지원하지 못했습니다. – prodigitalson
아, 좋은 지적이야! 제가 지금하고있는 일은 그 어느 곳에서도 결코 사용되지 않을 것입니다. 그러나 그것은 제가 배우는 동안 분명히 제가 지킬 것입니다. 감사! – Gisto