1

こんにちは、私は結合クエリに混乱があるので、同じようにサブクエリを書きました。私のデータベースのデザインは次のようなものです:table name = dbtest

------------------------
| id | name | relation |
------------------------
| 1  | abc  |    2     |
| 2  | bbc  |    0     |
| 3  | kbc  |    2     |
| 4  | xyz  |    3     |
------------------------

誰と誰が関係しているかに応じたアウトプットが欲しい。

入力した場合、id = 4それが返されるはずですxyz => kbc

これまでに達成したサブクエリを通じて 、サブクエリは次のとおりですkbc
select name from dbtest where id = (select relation from dbtest where id = '3');

結合クエリを使用して目的の出力を取得するのを手伝ってくれる仲間はいますか?

4

5 に答える 5

1
select name
from dbtest
where id = (
  select relation
  from dbtest
  where id = '3'
);

(yours)は(sは内側の選択、rは外側の選択)と同等です。

select r.name
from dbtest s
join dbtest r
  on r.id = s.relation
where s.id = '3'
于 2013-02-19T07:33:04.363 に答える
1

xyz => kbc私はこのクエリとの関係を得ることができました:

SELECT a.name, b.name from dbtest a, dbtest b where a.id = 4 and a.relation = b.id

編集:これはJOINを使用した同じクエリです

SELECT a.name, b.name FROM dbtest a JOIN dbtest b ON a.relation = b.id WHERE a.id = 4
于 2013-02-19T07:39:01.303 に答える
0
select d.name,d.id,db.relation from dbtest d, dbtest db where d.id = db.relation;

これは自己参加です...それが役立つことを願っています

于 2013-02-19T07:32:57.090 に答える
0

これを試してください:

select a.id,a.name,b.name,b.relation 
from dbtest a,dbtest b where a.id=b.relation
于 2013-02-19T07:38:35.217 に答える
-1
select name from dbtest where relation ='3';
                  OR
//if id is dynamic value
select name from dbtest where relation ='$id';
于 2013-02-19T07:45:59.067 に答える