Joomla数据库查询SELECT AS

时间:2014-01-07 16:20:10

标签: joomla

所以我只是假设要查询我的假设数据库:

$query->select($db->quoteName(array('user_id', 'name')));

但是,我会像查询一样:

SELECT `user_id` AS `uid`, `name` AS `User-Name`

我怎么能在那里得到AS?

5 个答案:

答案 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 AS a

所以,你可能会有这样的事情:

$query
  ->select('*')
  ->from($db->quoteName('#__content', 'a'))