こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

SQL サブクエリで抽出したカラムについて

サブクエリで抽出したカラムを
本クエリでの結果と一緒に表示したいのですが
どのように実現してよいかわからず困っております。

詳細としては、下記のようなことをしたいと考えております。
文中の1)と2)は文章下部にあるSQLを指しております
-----------------------------------------------------------
最初は、1)のように凄く単純なSQLでよかったのですが
仕様が変わり、TBL2で取得した新しいカラムも一緒に
本クエリでの結果として取得できれば、SQLを2回実行せずに済むなと考えたのですが、
2)のように色々と試行錯誤したのですが、実現できません。
(2)は単なる空想ですが…)

そこで、わかる方にお伺いしたいのですが、
副問い合わせで取得した複数カラムの中の1つのカラム【2)でいうところのTBL2.X】

2)のように"select TBL1.A , TBL2.X"として、結果を得ることは可能でしょうか。

ただし、
TBL1のカラムAは、TBL2に存在しない
TBL2のカラムXは、TBL1には存在しない
カラムBは、TBL1、TBL2に存在する
の条件となっております

環境はMysqlです

テーブル結合の方法も考えたのですが、
TBL2で、日付でソートし、その上位100件だけを
持ってきたいと思ったので、副問い合わせで一気に抽出しようとこの方法を考えまし


お分かりになる方がいらっしゃいましたらよろしくお願いします



1)SQL
------------
select TBL1.A
from TBL1
where TBL1.B in (
select TBL2.B
from TBL2
where 条件
)



2)想像SQL(こんな感じの事をしたい)
--------------
select TBL1.A , TBL2.X
from TBL1
where TBL1.B in (
select TBL2.B , TBL2.X
from TBL2
where 条件
order by TBL2.日付 desc
limit 100
)

投稿日時 - 2012-04-17 22:07:27

QNo.7426803

困ってます

質問者が選んだベストアンサー

select TBL1.A , TBL2.X
from TBL1, TBL2
where TBL1.B = TBL2.B
order by TBL2.日付 desc
limit 100

これじゃダメなんですか?
TBL2.日付でソートしているわけだから、ソート後の
100件を取ると思うけど。

投稿日時 - 2012-04-17 22:15:41

お礼

ありがとうございました。
教えていただいたSQLを実行したら思い通りの結果が得られました
(20件でのテストですが…)

お騒がせしました

投稿日時 - 2012-04-19 00:05:27

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問