【发布时间】:2020-12-08 17:13:23
【问题描述】:
当我尝试在 TYPO3 上使用“queryBuilder”实现时,我遇到了 SQL(子查询)语句的问题。请你帮我解决这个问题(将 SQL 语句转换为 TYPO3 "queryBuilder")。谢谢!
SQL 语句:
SELECT * FROM table_1 AS t1
INNER JOIN table_2 AS t2 ON t1.id = t2.id
WHERE t2.date = (SELECT MAX(date) FROM t2 AS t2_Tmp WHERE t2_Tmp.id = t2.id)
我尝试使用此代码(示例):
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)
->getQueryBuilderForTable('table2');
return $queryBuilder->select('*')
->from('table2')
->innerJoin(
'table2',
'table1',
't1',
$queryBuilder->expr()->eq('t1.id', $queryBuilder->quoteIdentifier('t2.id'))
)
->where(
$queryBuilder->expr()->eq('t2.date',
$queryBuilder->addSelectLiteral($queryBuilder->expr()->max('t2.date', 'date'))
->from('t2','t2_tmp')
->where($queryBuilder->expr()->eq('t2_tmp.id', $queryBuilder->quoteIdentifier('t2.id')))
)
)
->execute()
->fetchAll();
【问题讨论】:
-
那么到目前为止你尝试了什么?你到底在哪里挣扎?
-
可以看我的代码示例
-
具体的错误信息是什么?