php – 如何从joomla表中选择所有列?

我想选择jos_content表中的所有列和Joomla中的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();
点赞