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