2014-09-08 3 views
0

Я пытаюсь получить запрос JOIN в TYPO3 с использованием createQuery и $query->statement(...), но получаю нечетные результаты. Может ли кто-нибудь объяснить мне, почему TYPO3 не включает имена таблиц в качестве префикса для имен столбцов в запросе JOIN? Связано ли это с ORM? Могу ли я в любом случае ускорить запрос нескольких 1: N-отношений?TYPO3 не поддерживает имена полей в запросе JOIN

Пример:

SELECT 
    client.name, project.name 
FROM 
    client 
LEFT JOIN 
    project ON project.client = client.uid 

PHP-код из репозитория клиента:

$query = $this->createQuery(); 
$query->statement($statement); 
$query->getQuerySettings()->setReturnRawQueryResult(true); 
var_dump($query->execute()); 

В результате выводит только названия проектов:

array (size=294) 
    0 => 
    array (size=1) 
     'name' => string 'Projectname1' (length=21) 
    1 => 
    array (size=1) 
     'name' => string 'Projectname2' (length=20) 
    2 => 
    array (size=1) 
     'name' => string 'Projectname3' (length=32) 

EDIT: Это может быть стандартным поведением SQL.

ответ

0

Использование псевдонимов для полей:

SELECT 
    client.name client_name, project.name project_name 
FROM 
    client 
LEFT JOIN 
    project ON project.client = client.uid 
+0

Да. Можно даже сделать 'client.name AS 'client.name''. Возможно, чтобы упростить процедуру сопоставления объектов. –

Смежные вопросы