私の仕事のためのデータベースを構築していますが、このクエリの作成方法を理解することができません。複数の列を持つmysqlの結合が残っています
私の問題に関連するテーブルは以下のとおりです。
仕事
Surgical_Planning - 、外部キーとしての仕事を持っているいくつかの仕事のために存在し、他の人
Medical_Modelためない - 外部キーとしての仕事を持っています、1対1の関係
これは私が手術計画についての情報を持っていない作業照会です
SELECT
job,
physician_idphysician as Physician,
patient_idpatient as Patient,
status,
DATE_FORMAT(scan_date, '%M %e, %Y, %l:%i%p') as Scan_Date,
DATE_FORMAT(timestamp, '%M %e, %Y, %l:%i%p') as Recieved,
DATE_FORMAT(date_required, '%M %e, %Y, %l:%i%p') as Date_Required
FROM
job, patient_has_physician as phys, Scan, Medical_Model as med
WHERE
Scan.job_job = job AND phys.job_job = job
AND med.job_job = job AND job.type = 'medical
私は、上記のクエリのすべての情報を使ってすべてのジョブを順番に表示するように左ジョイントを行いたいと思うが、ジョブのSurgical_Planningがあるときは#そのためにも。ここで
SELECT
job,
physician_idphysician as Physician,
patient_idpatient as Patient,
status,
DATE_FORMAT(scan_date, '%M %e, %Y, %l:%i%p') as Scan_Date,
DATE_FORMAT(timestamp, '%M %e, %Y, %l:%i%p') as Recieved,
DATE_FORMAT(date_required, '%M %e, %Y, %l:%i%p') as Date_Required
FROM
job, patient_has_physician as phys, Scan, Medical_Model as med
LEFT JOIN Surgical_Planning ON job.job = Surgical_Planning.job_job
AND Scan.job_job = job AND phys.job_job = job
AND med.job_job = job AND job.type = 'medical'
が動作していない私の試みは、私は、この基本的な左は私が望むように作業に参加得ることができますが、私はそれが動作しません上記のような複数の列を追加する場合です。
SELECT job, planning_id
FROM job
LEFT JOIN Surgical_Planning ON job = Surgical_Planning.job_job
サブクエリも同様に使用できますか?私はこれらのより基本的なクエリを理解することができますが、これらのより複雑な結合およびサブクエリの問題は本当に問題になります。どんなアドバイスもありがとうございます。
EDIT ---ジョブテーブルスキーマ
- 表mmrl
。 job
DROP TABLE IFはmmrl
をEXISTS。 job
;
テーブルが存在しない場合は、mmrl
が作成されます。job
(
job
INT(11)NOT NULL AUTO_INCREMENT、
type
VARCHAR(45)NULL、
status
VARCHAR(45)NULLデフォルトNULL、
timestamp
TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP、
PRIMARY KEY(job
)
ENGINE = InnoDB
DEFAULT CHARACTER SET = latin1;