Joomla 2.5使用左连接删除查询

Joomla 2.5使用左连接删除查询,joomla,joomla2.5,Joomla,Joomla2.5,我试图在Joomla 2.5中使用左连接实现删除代码: $cid = JRequest::getVar('cid', array(), 'post', 'array'); $query = $db->getQuery(true); $query->delete($db->quoteName('table1').' AS t1'); $query->leftJoin($db->quoteName('table2'). ' AS t2 ON t2.table_1_

我试图在Joomla 2.5中使用左连接实现删除代码:

$cid = JRequest::getVar('cid', array(), 'post', 'array');

$query = $db->getQuery(true);

$query->delete($db->quoteName('table1').' AS t1');

$query->leftJoin($db->quoteName('table2').
' AS t2 ON t2.table_1_id = t1.id ');

$query->where(array('t1.id IN ('.  implode(',', $cid).')'));

$db->setQuery($query);

try {
  $db->query(); 
} catch (Exception $e) {
  echo $e->getMessage();
}
我得到的是:

DELETE FROM `table1` AS t1
LEFT JOIN `table2` AS t2 ON t2.table_1_id = t1.id 
WHERE t1.id IN (48)
此SQL查询不正确。我需要的是:

DELETE t1.*,t2.* FROM `table1` AS t1
LEFT JOIN `table2` AS t2 ON t2.table_1_id = t1.id 
WHERE t1.id IN (48)

那么我应该如何更改Joomla查询以获得正确的SQL查询呢?有什么想法吗

我已经和Joomla一起工作很长时间了。根据我的Joomla知识,你无法完成你想要做的事情
$query->delete()
。因为您的查询有点棘手,所以可以使用下面的方法执行

$db = JFactory::getDBO();
$query = "DELETE t1.*,t2.* FROM `table1` AS t1
LEFT JOIN `table2` AS t2 ON t2.table_1_id = t1.id 
WHERE t1.id IN (48)"; // you can replace the line with array('t1.id IN ('.  implode(',', $cid).')')
$db->setQuery($query);
$db->query();

尝试链接->列(t1.*,t2.*)删除是奇怪的,因为它显然只放置表。不,这也不起作用。如果执行$query->delete(),它将删除整行。刚好在JTableUser$query->delete()中看到了这一点;查询->来自('##u用户\用户组\映射');是的,我想我会坚持你的方法。实际上,这与Joomla v1.5中的操作方式相同。不管怎样,谢谢你的帮助。是的,目前我们只能这么做。但我希望将来会有解决办法:-)我用这种方法解决了我的问题。我对$query->delete()也有问题。谢谢