所以我只是假设要查询我的假设数据库:
$query->select($db->quoteName(array('user_id', 'name')));
但是,我会像查询一样:
SELECT `user_id` AS `uid`, `name` AS `User-Name`
我怎么能在那里得到AS?
答案 0 :(得分:10)
我知道这个问题是6个月大,所以你可能找到了答案或解决了问题,但是对于其他遇到类似问题的人来说:
$query->select($db->quoteName(array('user_id','name'),array('uid','User-Name')));
如果您只想为某些字段使用别名,只需在数组中为您不想要别名的字段传递null
,例如:
$query->select($db->quoteName(array('user_id','name'),array(null,'User-Name')));
会给出
"SELECT `user_id`, `name` AS `User-Name`"
答案 1 :(得分:1)
我首选的方式是这样:
我使用要选择的字段创建一个数组:
$fields = array(
'a.id' => 'id',
'a.field1' => 'field1',
'a.field2' => 'field2',
'a.field3' => 'field3',
'b.field1' => 'bfield1',
'b.field2' => null,
'b.field3' => 'bfield3',
);
在上面的数组中,键用于查询的db列名称,别名的值,如稍后在$query->select()
中所见。
*当您不需要别名时-只需将其设置为空即可。
这有助于更好地控制和检查我想要的字段以及如何命名它们-更好地进行维护或更改,并且具有足够的可移植性,因为我只需要根据需要更改$fields
数组即可。
然后,Joomla选择命令可能类似于:
$query->select( $db->quoteName(
array_keys($fields),
array_values($fields)
));
这将产生以下SQL SELECT
查询:
选择`a`.`id` AS`id`,`a`.`field1` AS`field1`,`a`.field2` AS `field2`,`a`.`field3` AS`field3`,`b`.`field1` AS `bfield1`,`field2`,`b`.field3` AS`bfield3`
答案 2 :(得分:0)
尝试以下方法:
$query->select($db->quoteName('user_id') .' AS '. $db->quoteName('name') .' AS '. $db->quoteName('User-Name'));
请务必使用此处所述的完整查询:
http://docs.joomla.org/Selecting_data_using_JDatabase
所以你的看起来像这样:
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select($db->quoteName('user_id') .' AS '. $db->quoteName('name') .' AS '. $db->quoteName('User-Name'));
$query->from($db->quoteName('#__tablename'));
$db->setQuery($query);
$results = $db->loadObjectList();
请注意,我没有使用AS
对此查询进行测试,请告知我是否有效
答案 3 :(得分:0)
我有这个工作:
->select($db->quoteName(array('user_id`' . ' AS ' . '`uid', 'name`' . ' AS ' . '`User-Name')))
答案 4 :(得分:0)
最好使用Joomla! suggest us。
注意,将'a'作为第二个参数会生成
#__content
ASa
所以,你可能会有这样的事情:
$query
->select('*')
->from($db->quoteName('#__content', 'a'))