2016-07-07 2 views
0

以下のデータがあります。各患者は固有のIDを有し、薬物は処方された薬物を示す。SQLで行を選択

Id drug 
1 abc 
1 ghi 
2 abc 
2 cde 
2 def 
3 ghi 
3 klm 

私はSQLで "ghi"の患者にどのような薬が処方されているのか見たいと思います。結果はこのようなものになるはずです。

イド薬

1 ABC

1 GHI

3 GHI

3 KLM事前に

感謝。

+3

これまでに試したことをお見せください。ありがとうございました。 –

+0

私たちは、薬物ではなくコードを意味します。 – Strawberry

答えて

0

あなたの探しているものは何ですか? 「GHI」を持つすべての患者のリストを取得し、そのリストからそれらの患者に処方IDと薬のリストを返します

SELECT id, drug FROM (SELECT id FROM Patients WHERE drug = 'ghi') AS T INNER JOIN Patients AS P ON T.id = P.id 

0

あなたのテーブル名は言及していません。私は処方と推測しました。

あなたの予想クエリ:

select * from prescription where id in 
(select id from prescription where drug='ghi') 

ここでは、私はそれを行っている方法です。

データベーススキーマ

create table prescription 
(
    id int, 
    drug varchar(100) 
); 
insert into prescription(id, drug) values(1, 'abc'); 
insert into prescription(id, drug) values(1, 'ghi'); 
insert into prescription(id, drug) values(2, 'cde'); 
insert into prescription(id, drug) values(2, 'def'); 
insert into prescription(id, drug) values(3, 'ghi'); 
insert into prescription(id, drug) values(3, 'klm'); 

クエリ

select * from prescription where id in 
(select id from prescription where drug='ghi') 

結果

id drug 
1 abc 
1 ghi 
3 ghi 
3 klm 

あなたは私をテストする場合ここのオンラインはフィドルですhttp://www.sqlfiddle.com/#!9/0a299/7/0

+0

ありがとう。それは動作します。 –

+0

それを聞いてうれしいです。ユーザーが自分の質問に対して良好な回答を受け取った場合、そのユーザーは回答を「受け入れる」ことができます。こちらをご覧ください:http://stackoverflow.com/help/accepted-answer – arsho