3
SELECT JIVE_USER_ID,
       EMAIL_ID, 
       USER_ID 
FROM VIK_USER WHERE EMAIL_ID='user@example.com';

结果是

JIVE_USER_ID    EMAIL_ID              USER_ID
11222            user@example.com     User

另一个查询是

SELECT  VIK_USER_PROFILE.FIRST_NAME,
        VIK_USER_PROFILE.LAST_NAME,
        VIK_USER.EMAIL_ID 
FROM VIK_USER,VIK_USER_PROFILE 
WHERE VIK_USER_PROFILE.USER_ID=VIK_USER.USER_ID;

结果是

FIRST_NAME    LAST_NAME     EMAIL_ID
Ray            User        user@exmaple.com

我想使用单个块语句获得结果。如何将这两个选择语句合并为一个。

谢谢你。

4

2 回答 2

3
select VIK_USER.JIVE_USER_ID,
       VIK_USER.EMAIL_ID, 
       VIK_USER.USER_ID,
       VIK_USER_PROFILE.FIRST_NAME,
       VIK_USER_PROFILE.LAST_NAME,
       VIK_USER.EMAIL_ID
from VIK_USER, VIK_USER_PROFILE
where VIK_USER_PROFILE.USER_ID=VIK_USER.USER_ID
and VIK_USER.EMAIL_ID='user@example.com'

详细地说,VIK_USER 和 VIK_USER_PROFILE 在一个 INNER JOIN 中(逗号只是一个快捷方式)。

加入条件为VIK_USER_PROFILE.USER_ID=VIK_USER.USER_ID。JOIN 具有连接条件,通常在跨两个表共享相同值的列上。

或者,可以这样编写完全相同的查询:

select *
from VIK_USER
inner join VIK_USER_PROFILE on VIK_USER_PROFILE.USER_ID=VIK_USER.USER_ID
where VIK_USER.EMAIL_ID='user@example.com';
于 2012-10-09T10:29:34.787 回答
0

上面的答案基于 where or 和子句连接表和过滤器。这对于大表可能效率低下。而是过滤特定 id 的表,然后加入。

于 2015-03-05T16:09:41.663 回答