2009-03-13 13 views
1

私は、単一のテーブルを持って、それは医師が病院にユニークな4つの分野同じテーブルで多くの関係に多くの質問を拡張

 
Id|Hospital| Doctor|patient 

1  A  D1  P11 

2  B  D6  P61 

3  A  D2  P21 

4  A  D1  P12 

5  B  D7  P71 

6  B  D6  P62 

7  B  D6  P63

が含まれています。他の病院では機能しません。患者は他の医者には訪れない医師には固有のものです。各病院には複数の医師がいます。

各医師に複数の患者がいる場合は、

ここで問題は次のようなものです。それぞれの医者に関連して「ただ1人の患者」を得るにはどうすればよいですか?それは記録からのどんな患者であってもよい。私は私が得たこの

 
Hospital Doctor Patient 
    A  D1  P11 

    A  D2  P21 

    B  D6  P61 

    B  D7  P71

のようないくつかのことを見て楽しみにしています

のような答え 選択病院、医師、最大テーブルGROUP BY病院、医師ORDER BY病院、医師から(患者);

idを取得する方法も上記の表のようにユニークです。

 
id Hospital Doctor Patient 
1 A  D1  P11 

3 A  D2  P21 

2 B  D6  P61 

5 B  D7  P71

この質問を再投稿して申し訳ありません。

+0

(もっと洞察力のための)前の質問:http://stackoverflow.com/questions/616853/getting-the-data-out-of-one-many-relation-船から-同じテーブル –

答えて

1

ような何か試してみてください:あなたは3つのテーブルに何かを壊すに見えるかもしれません

select Id,Hospital,Doctor,Patient 
    from table 
    where Id in (select max(t.Id) from table t group by t.Hospital,t.Doctor) 
    order by Hospital,Doctor; 
+0

あなたの答えは、このスクリプトは、右paranthsisはmytableはMI mi.hospital = md.hospital とMI FROM SELECT(SELECT 番号 で欠落していることを述べています – Giridhar

0
SELECT m.* 
FROM (
     SELECT (
       SELECT id 
       FROM mytable mi 
       WHERE mi.hospital = md.hospital 
         AND mi.doctor = md.doctor 
       LIMIT 1 
       ) AS first_patient 
     FROM (
       SELECT DISTINCT hospital, doctor 
       FROM mytable 
       ) md 
     ) mo, mytable m 
WHERE m.id = mo.first_patient 
+0

正確甘いとshort.Thankです.doctor = md.doctor LIMIT 1 )AS first_patient – Giridhar

0

を:他の何らかのPK、外部キーとの(主キーIDを持つ、と病院のフィールド)病院、医師(病院、医師フィールド)と患者(他のPK、医者の外来キー、患者フィールドの両方)。次に、あなたの文は次のようになります。

SELECT H.Id, H.Hospital, D.Doctor, Max(P.Patient) 
FROM Hospitals H 
INNER JOIN Doctors D ON H.Hospital = D.Hospital 
INNER JOIN Patients P ON D.Doctor = P.Doctor 
ORDER BY Hospital, Doctor 
+0

私はテーブルを制御していません。 – Giridhar

+0

他の回答を使用する必要があります。 –

関連する問題