2

動作中の MySQL クエリがあり、Typo3 構文に変換する必要があります

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

タイプミス3

        $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',
            '',
            '',
            ''
        );  

結果は空です...これがtypo3でどのように機能するか知っている人はいますか?

デバッグはこれをもたらします: $GLOBALS['TYPO3_DB']->debug_lastBuiltQuery;

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
4

1 に答える 1

4

4 番目のパラメーターは、exec_SELECT_mm_query参照ではなく、外部キー テーブル名です。代わりに次のものが必要です。

tt_news_tx_extendnews_subscriber_mm.uid_foreign = fe_users.uid

それだけ:

fe_users

詳細については、TYPO3 api: exec_SELECT_mm_queryを参照してください。

次のことを試すことができると思います。

$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',
            '',
            '',
            ''
        );  

または、 exe_SELECTqueryは文字列をSELECT..., FROM...(などの) 部分に連結するだけなので、次の小さなトリックを使用して SQL を正確に使用することもできます。このため、JOIN部分的に a を使用できますFROM

$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',
 '',
 '',
 '');
于 2013-06-10T07:47:32.113 に答える