繁体   English   中英

Joomla SQL内部联接查询不起作用?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM