首页 > 解决方案 > oracle如何连接两个表

问题描述

我有两个表,USER_TABLE 和 USER_ADDRESSES,如下所述

在此处输入图像描述

在此处输入图像描述

我想要像下面这样的输出

在此处输入图像描述

我已经尝试如下但由于 USER_TABLE 中的“USER_TRAVELLED_CITY”列而得到重复的行

在此处输入图像描述

标签: sqloraclejoinselect

解决方案


中的数据user_table未标准化,因此会产生这些重复的行。

我的建议是修复数据库设计并对其进行规范化。如果这不是一个选项,您可以使用distinct从结果中删除重复项。此外,并不是隐式连接(子句中有多个表from)是一种过时的做法,您可能应该使用显式join子句:

SELECT DISTINCT usr.first_name, usr.last_name, usr.user_id, usr_add.user_addrs
FROM   user_table usr
JOIN   user_address usr_add ON usr.user_id = usr_add.user_id
WHERE  usr.user_id = 1001

推荐阅读