我有点困惑这个简单的MySQL查询:这个简单的左连接操作不起作用,但为什么?
SELECT
`user`.`id`,
`user`.`name`
FROM
`#__users` `user`
LEFT JOIN
(SELECT
`_s`.`userId`,
SUM(`_s`.`fild12`) AS `fild12`,
SUM(`_s`.`fild13`) AS `fild13`
FROM
`#__logbookEventdata` `_s`
GROUP BY `_s`.`userId`) `stats`
ON
(`stats`.`userId`=`user`.`id`)
它返回的输出:
id | name
----+-------------
291 | bla
289 | Super User
290 | user1
其实我预计,从统计列将被添加到输出。但他们不是。当我只需拨打统计-SELECT查询我得到这样的输出:
userId | fild12 | fild13
--------+--------+--------
289 |15 |0
290 |0 |0
我想不通为什么这是行不通的。我希望你们能帮助我。 谢谢!
将出现在输出中的字段在查询的'SELECT'部分中定义。 – Bulat
那么,你实际上并没有添加任何从'Stats'表到'SELECT' ... – Siyual
你没有选择它们'SELECT 'user'.'id', 'user'.'name'' 如果您希望您的子查询字段需要在main select子句中选择它们,那么这些是您正在选择的字段。 – cerkiewny