-1

現在、2 つのテーブルがあり、患者がアレルギーを起こす可能性のある薬のセットを患者ごとに含む、患者ID薬名の列を持つビューを作成しようとしています。再投稿されたアレルギー表からの薬物、および推定アレルギー表からアレルギーであると推定される他の薬物を含みます。

CREATE TABLE repostedallergies (
  patient_id CHAR(5),
  drug_name  CHAR(15),
  PRIMARY KEY (patient_id, drug_name)
)
CREATE TABLE inferredallergies (
  alg CHAR(15),
  canbe_alg CHAR(15),
  PRIMARY KEY (alg, canbe_alg)
)

サーバータイムを試しましたが、うまくいきませんでした

CREATE VIEW allergies AS
SELECT DISTINCT r.patient_id, r.drug_name
FROM reportedallergies r, inferredallergies i
WHERE r.drug_name IN (SELECT canbe_alg 
                  FROM inferredallergies i);

推論されたアレルギーテーブルからビューに Drug_name を追加する他の方法はありますか? ありがとうございました!

4

2 に答える 2

0
CREATE VIEW allergies AS
SELECT r.patient_id, r.drug_name
FROM reportedallergies r
INNER JOIN inferredallergies i ON r.drug_name = i.canbe_alg 
GROUP BY r.patient_id, r.drug_name
于 2016-10-06T03:27:22.353 に答える
0

FROM句 ではコンマを使用しないでください。常に適切な明示的なJOIN構文を使用してください。 いつも

UNION ALLあなたの場合、両方のテーブルの情報を組み合わせる必要があると思います:

CREATE VIEW allergies AS
    SELECT r.patient_id, i.canbe_alg as drug_name
    FROM reportedallergies r JOIN
         inferredallergies i 
         ON r.drug_name = i.alg
    UNION ALL
    SELECT r.patient_id, r.drug_name
    FROM reportedallergies r;

重複を削除する必要がある場合は、 を に置き換えUNION ALLますUNION

于 2016-10-06T03:28:32.783 に答える