首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TYPO3 - MySQL to mm查询语法

TYPO3 - MySQL to mm查询语法
EN

Stack Overflow用户
提问于 2013-06-09 20:38:02
回答 1查看 1.4K关注 0票数 2

我现在有一个可以工作的MySQL查询,我需要它来转换成Typo3语法

代码语言:javascript
复制
SELECT 
  tt_news_tx_extendnews_subscriber_mm.uid_local, 
  fe_users.* 
FROM fe_users
   JOIN tt_news_tx_extendnews_subscriber_mm
    ON tt_news_tx_extendnews_subscriber_mm.uid_foreign =  fe_users.uid
WHERE tt_news_tx_extendnews_subscriber_mm.uid_local = 101

TYPO3

代码语言:javascript
复制
        $res0 = $GLOBALS['TYPO3_DB']->exec_SELECT_mm_query(
            'tt_news_tx_extendnews_subscriber_mm.uid_local,fe_users.*',
            'fe_users',
            'tt_news_tx_extendnews_subscriber_mm',
            'tt_news_tx_extendnews_subscriber_mm.uid_foreign = fe_users.uid',
            'tt_news_tx_extendnews_subscriber_mm.uid_local = 101',
            '',
            '',
            ''
        );  

结果是empty...anybody知道这是如何与typo3一起工作的?

Debug带来这个:$GLOBALS'TYPO3_DB'->debug_lastBuiltQuery;

代码语言:javascript
复制
SELECT tt_news_tx_extendnews_subscriber_mm.uid_local,fe_users.* 
    FROM fe_users,tt_news_tx_extendnews_subscriber_mm,tt_news_tx_extendnews_subscriber_mm.uid_foreign = fe_users.uid 
    WHERE fe_users.uid=tt_news_tx_extendnews_subscriber_mm.uid_local 
    AND tt_news_tx_extendnews_subscriber_mm.uid_foreign = fe_users.uid.uid=tt_news_tx_extendnews_subscriber_mm.uid_foreign tt_news_tx_extendnews_subscriber_mm.uid_local = 101
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-06-10 15:47:32

exec_SELECT_mm_query中,第四个参数是外键表名,而不是引用。您需要的不是:

代码语言:javascript
复制
tt_news_tx_extendnews_subscriber_mm.uid_foreign = fe_users.uid

仅限:

代码语言:javascript
复制
fe_users

请在TYPO3 api : exec_SELECT_mm_query中查看更多详细信息。

我认为,您可以尝试以下操作:

代码语言:javascript
复制
$res0 = $GLOBALS['TYPO3_DB']->exec_SELECT_mm_query(
            'tt_news_tx_extendnews_subscriber_mm.uid_local,fe_users.*',
            'tt_news',
            'tt_news_tx_extendnews_subscriber_mm',
            'fe_users',
            'tt_news_tx_extendnews_subscriber_mm.uid_local = 101',
            '',
            '',
            ''
        );  

或者,您可以通过下面的小技巧使用您已有的SQL,因为exe_SELECTquery只将您的字符串连接到SELECT..., FROM... (依此类推……)零件。因此,您可以在FROM部件中使用JOIN

代码语言:javascript
复制
$res0 = $GLOBALS['TYPO3_DB']->exec_SELECTquery('tt_news_tx_extendnews_subscriber_mm.uid_local,fe_users.*',
'fe_users
   JOIN tt_news_tx_extendnews_subscriber_mm
    ON tt_news_tx_extendnews_subscriber_mm.uid_foreign =  fe_users.uid',
 'tt_news_tx_extendnews_subscriber_mm.uid_local = 101',
 '',
 '',
 '');
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17009677

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档