2012-03-02 9 views
-1

ちょっと、私はオンラインの質問を完了しようとしてSQLを習得しようとしていますが、私はビューを作成しようとしています。SQLでのビューの作成 - 重複フィールドのエラー

オンラインの指示に従い、ビューを作成するスクリプトを入力すると、重複したフィールドエラーが表示されますが、現在はそれをビューに変換しようとしているSELECTクエリを作成しました。

私はそれを調べましたが、それは重複フィールドとして "doctor.fullname"かもしれませんが、これは別のテーブルからのものです。 Andway私は削除してまだそれを試みたが、エラーが表示されます。 私はおそらく簡単な解決策があり、これであなたを迷惑して申し訳ありませんが、それは感謝する必要があります知っています。

CREATE VIEW patient_registration_form 
AS 
SELECT 
    patient.patient_id, 
    patient.nok_no, 
    patient.f_name, 
    patient.s_name, 
    patient.sex, 
    patient.dob, 
    patient.marital_status, 
    patient.date_registered, 
    nok.tel_no, 
    nok.full_name, 
    nok.address, 
    nok.relationship, 
    doctor.doctor_id, 
    doctor.clinic_no, 
    doctor.full_name, 
    doctor.address 
FROM doctor, patient, nok 
WHERE doctor.doctor_id = patient.doctor_id 
AND nok.nok_no = patient.nok_no; 
+1

このクエリ(nok.full_nameと競合します)にdoctor.full_nameが表示されます。 2つのうちの1つまたは両方をASでエイリアスすることができます(例えば、 'doctor.full_name AS doctorfull_name') –

+1

そのひどい暗黙の結合構文を使用しないでください。これはSQLの反パターン化であり、20年前に良さのために取り替えられました! – HLGEM

+0

@HLGEMあなたは、特にmySQLを使って、それがたくさんあることを知っています。理由は分かりません。私は、チュートリアルでそのことが示されているかどうか疑問に思った – ScottJShea

答えて

0

次の2つの列挙されたfull_name ... nok.full_name用とdoctor.full_nameための1つを持っています。 1つは、nok.full_name as nok_full_nameのように名前を変更する必要があります。

+0

お時間をありがとう –

2

あなたは、彼らが異なるテーブルからだにも関わらず... ...同じ名前でfull_nameaddressをいくつかの列を返します。この場合、あなたはそれらに異なる別名を与えることがあります。

SELECT 
    patient.patient_id, 
    patient.nok_no, 
    patient.f_name, 
    patient.s_name, 
    patient.sex, 
    patient.dob, 
    patient.marital_status, 
    patient.date_registered, 
    nok.tel_no, 
    nok.full_name as nok_full_name, 
    nok.address as nok_address, 
    nok.relationship, 
    doctor.doctor_id, 
    doctor.clinic_no, 
    doctor.full_name as doctor_full_name, 
    doctor.address as doctor_address 
+0

あなたの時間をありがとう –

関連する問題