Joomla数据库查询SELECT AS

问题描述 投票:6回答:5

因此,我很高兴地查询我的假设数据库:

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

但是,我希望查询看起来像:

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

我该如何在其中获得AS?

joomla
5个回答
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`"

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测试此查询,所以请告诉我它是否有效


0
投票

我有这个要工作:

->select($db->quoteName(array('user_id`' . ' AS ' . '`uid', 'name`' . ' AS ' . '`User-Name')))

0
投票

最好使用Joomla! suggest us

注意,将'a'作为第二个参数将生成#__content AS a

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

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

0
投票

我的首选方式是:

我使用要选择的字段创建一个数组:

$fields = array(
    'a.id'     => 'id',
    'a.field1' => 'field1',
    'a.field2' => 'field2',
    'a.field3' => 'field3',
    'b.field1' => 'bfield1',
    'b.field2' => 'bfield2',
);

这将有助于更好地控制和检查我想要的字段以及如何命名它们-并且更易于维护或更改,并且具有足够的可移植性,因为我只需要根据需要更改$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`,`b`。`field2`AS`bfield2`

© www.soinside.com 2019 - 2024. All rights reserved.