2

これはSQLの質問です。説明するために最善を尽くします。

以下のようなテーブルがあります

id  name    accounts
1   Jim 7001
1   Jim 7002
1   Jim 7003
2   Ryan    7001
3   Todd    7001
3   Todd    7003
2   Ryan    7002
4   Cam 7001
5   Fran    7001
2   Ryan    7003
1   Jim 7004

私は最初に「7001」のアカウント列ですべての値を見つけて、正しいIDを見つけようとしています。その後、特定の ID のすべてのアカウントを表示できるように、それらの ID を持つ行のみをプルする必要があります。

私が使用しているサンプルコード

select 
s.id,
s.name,
s.account

from 
students s

where
s.account in ('7001','7002','7003','7004')

アカウント値が '7001' の ID を検索し、ID だけを対象に別のクエリを実行する 2 つのクエリでこれを行うことができますが、すべてを一度に計算するために書き込む方法があるかどうかを知りたいです。

前もって感謝します!

4

3 に答える 3

0
select t2.*
from tbl t1, tbl t2
where t1.accounts = '7001'
and t1.id = t2.id
于 2013-02-28T16:36:41.687 に答える
0

このソリューションは最適化されています。

SELECT  a.*
FROM    tableName as a
INNER JOIN tableName as b
    ON a.id = b.id
    AND b.accounts = 7001
于 2013-02-28T16:41:29.087 に答える
0
SELECT  *
FROM    tableName
WHERE   ID IN 
        (
            SELECT ID 
            FROM   tableName
            WHERE  accounts = 7001
        )

JOINバージョン(推奨

SELECT  a.*
FROM    students a
        INNER JOIN students b
          ON a.ID = b.ID
WHERE   b.accounts = 7001
于 2013-02-28T16:34:58.140 に答える