我正试图从2个表映射的id中获取记录,其中第二个表中可能有一行缺失。MYSQL:将缺失的行遗忘到结果中
我在第二个表上有一个名为name的列,它包含一个字符串值。我需要提取的值是'订阅',但这并不总是存在于表中。有可能有不同的值,我不想提取这个列。
是否可以检查值是否存在以及是否不向所有字段输出空值。
到目前为止,我有这个返回的所有记录
select COUNT(*)
from PUser a, PAttribute b
where exists (select null
from PAttribute c
where c.name = 'subscriptions' or c.name is null)
and a.id = b.userid;
希望解释它。
编辑
PUser表
ID等 列
PAttribute表
用户ID映射到PUser.id 名
现在用户ID可以在每个具有多个行一个不同的名称,例如'订阅','来源','等'等'
我想要获取所有在名称列中具有值“订阅”的用户,或者如果该行不存在“订阅”值,因为它们可能没有。
如果他们没有这行,输出应该为空。
编辑2:
曾为了这一点,我需要
select COUNT(*),(select b.stringValue from PAttribute b where b.userid = a.id and b.name = 'subscriptions') from PUser a order by a.id desc;
我不明白(select null ...)子查询;它与查询其余部分中使用的记录无关,因此询问ANY记录是否具有“订阅”或名称为NULL。 – 2012-01-30 14:41:08