我在Postgres数据库中有两个表。每个表中都有一列,代表相同的数字。我尝试了很少的联接查询来联接具有相似列号的两个表,但没有一个给我期望的输出。
表1中的user_id 列等于表2中的 Id 列
如何连接这两个表?
我在下面和其他一些查询中也进行了尝试,但是没有得到我想要的
选择members.access_level,members.user_id从成员INNER JOIN用户到members.user_id = users.id;
表格列如下所示
会员表
id |access_level |source_id |user_id |type
用户表
id |email |name |username
查询输出应如下所示:
username |name |email |access_level
答案 0 :(得分:1)
SELECT u.username
, u.name
, u.email
, m.access_level
FROM users u
JOIN members m ON (u.id = m.user_id)
;
如果希望成员表中未包含的用户可以加入LEFT JOIN
要解决您在评论中提出的问题,我相信您会寻找以下内容:
UPDATE members SET access_level = 'dev' WHERE access_level = '30';
这是假设该列已为text
类型。否则,您首先需要使用以下命令更改数据类型:
ALTER TABLE members
ALTER access_level SET DATA TYPE text;
答案 1 :(得分:0)
SELECT users.*, members.user_id, members.acces_level
FROM members
LEFT JOIN users
WHERE users.id = members.user_id