1

同じテーブルの2つの別々のビューを並べて表示するために使用できるクエリを1つまたは2つ作成しようとしています。orig、destなどのレコードがあります。各origには、すべてのdestとそれに関連するもののレコードがあります。つまり、1つのオリジナルがアトランタで、もう1つがフェニックスだとします。origまたはdestのいずれかにアトランタとフェニックスの両方がある2つのレコードがあります。

ORIG    / DEST    / STUFF
Atlanta / Phoenix / Stuff for this record
Phoneix / Atlanta / Stuff for this record

私が必要としているのは、片側にすべての目的地があり、反対側にすべての目的地があるアトランタの横並びのリストです。すべてのレコードに対してこれを行う必要があります。したがって、結果は次のようになります。

Atlanta / Athens / Stuff  :  Athens / Atlanta / Stuff
Atlanta / Chicago / Stuff  :  Chicago / Atlanta / Stuff
Boulder / Athens / Stuff  :  Athens / Boulder / Stuff

最終的にExcelになる必要があるため、2つの別々のクエリを実行できますが、それらを一致させる方法がわかりません。これは私が得た限りです:

SELECT a.orig, a.dest, a.stuff from table a WHERE a.orig = 'ATL' and a.orig IN (SELECT b.dest from table b WHERE b.dest = 'ATL') 

編集:スタッフはレコードATL/DENとDEN/ATLで異なります。

4

4 に答える 4

2

以下は、ATL を途中で使用するすべての組み合わせに関する質問に答えます。

select aleft.orig, aleft.dest, aleft.stuff, a.orig, a.dest, a.stuff
from table a join
     table aleft
     on a.orig = aleft.dest
where a.orig = 'ATL'
于 2013-01-08T19:47:43.920 に答える
1

これを試してください:

SELECT a.orig, a.dest, a.stuff, b.orig, b.dest, b.stuff 
FROM table a 
, table b
WHERE a.orig = b.dest
AND b.orig = a.dest
ORDER BY a.orig, b.orig
于 2013-01-08T19:52:10.480 に答える
1
Select a.orig, a.dest, a.stuff, b.orig, b.dest, b.stuff 
from a inner join a as b on
a.orig = b.dest and b.orig = a.dest
where a.orig = 'ATL' 
Order by a.orig, a.dest

目的のフェニックスを元のフェニックスなどと並べたいと思われるので、おそらく内容は異なり、意味があります

于 2013-01-08T19:56:51.280 に答える
0

destまたはoriginとしてATLとのすべての組み合わせが必要な場合は、SELECT a.orig、a.dest、a.stuff、b.orig、b.dest、b.stuff FROM table a as a CROSS JOIN table b as b WHERE aを実行します.orig = 'ATL' または b.dest = 'ATL'

あなたの例には a.orig 制約があるため、質問に記載されているように dest を意味する場合も変更してください。

于 2013-01-08T19:57:08.990 に答える