我正在尝试返回一组记录,这些记录在指定的字段中包含最多的数据 该表的主键是许可证密钥,因此用户可以注册多个许可证-不需要用户帐户,因此我们无法将单个用户帐户与多个许可证建立一对多关系(不幸!)
有时用户会给我们最少的信息。例如名字,姓氏,电子邮件。有时他们给我们更多。一个FacebookID和出生日期。
我已经尝试按照以下查询在电子邮件地址上进行分组并在FBID上执行order by子句,但是我对MySQL的了解感到困惑,现在我想知道是否有可能!?>
SELECT firstname, lastname, email, FBID, DOB
FROM users
GROUP BY email
ORDER BY FBID IS NULL;
我想从始终按电子邮件地址分组的集合中提取全部数据:
John, Smith, john@smith.com, NULL, NULL
John, Smith, john@smith.com, 123456, NULL
John, Smith, john@smith.com, NULL, '1/1/1990'
Fred, Jones, fred@jones.com, NULL, NULL
我要返回的内容:
John, Smith, john@smith.com, 123456, '1/1/1990'
Fred, Jones, fred@jones.com, NULL, NULL
谢谢!
答案 0 :(得分:1)
当不为null时,您可以尝试使用aggreagtion函数来提取值
select firstname, lastname, email, max(FBID), max(DOB)
from users
group by firstname, lastname, email
order by firstname, lastname, email