我想从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();