我想从joomla的jos_content表中选择所有列,从jos_categories表中选择一列。

 $db = JFactory::getDbo();
 $query = $db->getQuery(true);
 $query->select($db->quoteName(array('c.*', 'cat.alias')))
       ->from($db->quoteName('#__content', 'c'))
       ->from($db->quoteName('#__categories', 'cat'))
       ->where($db->quoteName('c.catid') .'='.$db->quoteName('cat.id'));
 $db->setQuery($query);
 $results = $db->loadObjectList();

但当我使用上述查询时,它显示以下错误:
 1054 - Unknown column 'c.*' in 'field list' SQL=SELECT `c`.`*`,`cat`.`alias` FROM `jos_content` AS `c`,`jos_categories` AS `cat` WHERE `c`.`catid`=`cat`.`id`

如果我使用'c.id'(或几个列名)而不是'c.*',那么它工作得很好。
如何解决这个问题。请帮我任何人。
提前谢谢

最佳答案

你的代码工作:

$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select(array('c.*', 'cat.alias'))
->from($db->quoteName('#__content', 'c'))
->from($db->quoteName('#__categories', 'cat'))
->where($db->quoteName('c.catid') .'='.$db->quoteName('cat.id'));
$db->setQuery($query);
$results = $db->loadObjectList();

用join代替:
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select(array('c.*', 'cat.alias'))
->from($db->quoteName('#__content', 'c'))
->join('INNER','#__categories as cat ON cat.id = c.catid')
->where($db->quoteName('c.catid') .'='.$db->quoteName('cat.id'));
$db->setQuery($query);
$results = $db->loadObjectList();

07-28 03:31