我有一个通过user_id
连接几个表的sql查询,问题是我想查看这些表中的所有数据。
目前我正在查询用户表和付款表,并根据 user_id
将它们连接起来。
我似乎每个 user_id 只得到一个结果,现在我知道这意味着会发生什么,但是我如何(如果可能)能够显示付款表中的所有数据(即我想看到多个显示用户已进行的各种付款的用户 ID。
我目前正在使用左连接,我认为这可能是问题所在,但切换它仍然没有显示我正在寻找的结果。
这是我当前的加入:
from user u
left join u_subscription us
on u.user_id = us.user_id
left join u_detail ud
on u.user_id = ud.user_id
任何帮助将不胜感激。
提前致谢
纳德
完整的sql查询:
select u.user_id as 'prop:User id', u.user_username as 'prop:username', u.user_email as 'Identity',u.user_created as 'Timestamp', us.user_subscription_expires as 'prop:Expires on', us.user_subscription_payment_provider as 'prop:Payment provider', us.user_subscription_modified, ud.user_detail_signup_country_iso3 as 'prop:Country'
from user u
left outer join user_subscription us
on u.user_id = us.user_subscription_user_id
left outer join user_detail ud
on u.user_id = ud.user_detail_user_id
最佳答案
我发现您的查询没有任何缺陷。它应该按预期工作。
我怀疑 subscription
和 detail
表中每个用户的行数不超过一行。这就是为什么您的左联接
为每个用户生成一行(如果是内部联接,则每个用户至多生成一行)。
关于mysql - SQL 查询未对结果进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19228336/