SQL 中获取地址的查询

问题描述

我有一个用户表,在这个表中我有 2 列 id 和 username 以及另一个表 useraddress,它具有 id、userid(用户表中 id 的外键)和地址。如何编写 sql 查询获取用户地址和用户 ID,以及获取每个 ID 的唯一地址的查询

我使用了查询,它给了我下面的结果,但我想要一个用户拥有的地址计数,并且还想显示对应于每个用户的唯一地址。

enter image description here

解决方法

尝试这样的事情

select id,username
from users
where exists (
    select distinct userid,useraddress
    from useraddress
    where useraddress.userid = users.id
)

select id,userid,useraddress
from useraddress
where exists (
    select distinct id,username
    from users where users.id = useraddress.userid
)

example image with results

,
  1. 查询以获取用户地址以及用户 ID 和用户名。

    SELECT u.id,u.username,ua.address
    FROM   users u
    JOIN useraddress ua ON u.id = ua.userid;
    
  2. 查询以获取每个用户 ID 的地址数。

    SELECT u.id,Count(ua.address)
    FROM   users u
    JOIN useraddress ua ON u.id = ua.userid
    GROUP  BY ua.userid; 
    
  3. 查询以获取每个 ID 的唯一地址。

    SELECT distinct ua.address,u. id
    FROM useraddress ua 
    JOIN  users u on ua.userid = u. id;