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

単一のブロック ステートメントを使用して結果を取得したいのですが、これら 2 つの select ステートメントを 1 つに結合するにはどうすればよいですか。

ありがとうございました。

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 には通常、2 つのテーブルで同じ値を共有する列に対する結合条件があります。

または、まったく同じクエリを次のように書くこともできます。

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 または and 句に基づいてテーブルとフィルターを結合します。これは、大きなテーブルでは効率が悪い場合があります。代わりに、特定の ID でテーブルをフィルタリングしてから結合します。

于 2015-03-05T16:09:41.663 に答える