2014-03-18 77 views
1

我正在嘗試使用內部連接來選擇用戶的訂閱的停止日期。下面是代碼示例:使用內部連接sql命令與Joomla查詢時遇到問題

Global $_CB_framework; 
$myId = $_CB_framework->myId(); 

$db = JFactory::getDbo(); 
$stopDateQuery = $db->getQuery(true); 

$stopDateQuery->select($db->quoteName(array('#__cbsubs_subscriptions.user_id', '#__cbsubs_payment_items.subscription_id', '#__cbsubs_payment_items.stop_date'))); 
$stopDateQuery->from($db->quoteName('#__cbsubs_subscriptions')); 
$stopDateQuery->innerJoin($db->quoteName('#__cbsubs_payment_items' ON '#__cbsubs_subscriptions.id'='#__cbsubs_payment_items.subscription_id')); 
$stopDateQuery->where($db->quoteName('#__cbsubs_subscriptions.user_id')." = ".$db->quote($myId)); 


$db->setQuery($stopDateQuery); 

$stopDateQueryResults = $db->loadRow(); 

$stopDate = $stopDateQueryResults['2']; 

echo 'stop Date:'.$stopDate; 

我已經直接運行該語句到phpMyAdmin的,而表沒有問題加入。我相信這與我對陳述的格式有關。有什麼建議麼?

回答

1

innerJoin行有語法錯誤。更改爲:

$stopDateQuery->innerJoin($db->quoteName('#__cbsubs_payment_items') . ' ON #__cbsubs_subscriptions.id = #__cbsubs_payment_items.subscription_id'); 

innerJoin()需要一個字符串,它應該是在SQL的格式加入無連接類型。例如:

$obj->innerJoin('table_a on table_a.id = table_b.id'); 
+0

謝謝。太棒了。 – Presto

+0

很高興幫助:) – MrCode