[英]Joomla sql inner join query does not work?
我有一個可以在phpMyAdmin中很好地運行的SQL查詢,但是無法通過Joomla API使其正常工作。 這是我的Joomla代碼:
$myid = 17;
$query->select($db->qn('MESSAGE.ID','MESSAGE.ID'));
$query->select($db->qn('MESSAGE.INQUIRY_ID','MESSAGE.INQUIRY_ID'));
$query->select($db->qn('INQUIRY.ID','INQUIRY.ID'));
$query->from($db->qn('MESSAGE'));
$query->innerJoin($db->qn('INQUIRY'));
$query->on($db->qn('MESSAGE.INQUIRY_ID') . ' = ' . $db->qn('INQUIRY.ID'));
$query->where($db->qn('MESSAGE.ID') . ' = ' . $db->quote($myid));
$db->setQuery($query);
$msg = $db->loadObjectList();
var_dump($msg);exit();
這是我從轉儲中得到的:
array(4) { [0]=> object(stdClass)#787 (3) { ["MESSAGE.ID"]=> string(2) "17"
**["MESSAGE.INQUIRY_ID"]=> string(1) "5" ["INQUIRY.ID"]=> string(1) "2"** }
[1]=> object(stdClass)#788 (3) { ["MESSAGE.ID"]=> string(2) "17"
["MESSAGE.INQUIRY_ID"]=> string(1) "5" ["INQUIRY.ID"]=> string(1) "3" }
[2]=> object(stdClass)#789 (3) { ["MESSAGE.ID"]=> string(2) "17"
["MESSAGE.INQUIRY_ID"]=> string(1) "5" ["INQUIRY.ID"]=> string(1) "4" }
[3]=> object(stdClass)#790 (3) { ["MESSAGE.ID"]=> string(2) "17"
["MESSAGE.INQUIRY_ID"]=> string(1) "5" ["INQUIRY.ID"]=> string(1) "5" } }
我對“內部聯接”的理解是,只有在MESSAGE.INQUIRY_ID和INQUIRY.ID字段相同的情況下,才應聯接那些記錄。 轉儲中似乎不是這種情況(請參見粗體)。
我究竟做錯了什么?
非常感謝,W。
如果使用查詢生成器,則可以使用echo $query->dump();
檢查最終查詢並將其與工作查詢進行比較的方法。
正如您所說,在您的情況下,問題出在on
方法上,該方法不存在,查詢也不符合您的期望。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.