Tôi đang xây dựng cơ sở dữ liệu cho công việc của mình và tôi đang gặp khó khăn trong việc tìm hiểu cách xây dựng truy vấn này.mysql trái tham gia với nhiều cột
Các bảng có liên quan đến vấn đề của tôi là:
việc
Surgical_Planning - có công việc như chính nước ngoài, tồn tại đối với một số công việc, không cho người khác
Medical_Model - có công việc như chính nước ngoài , Mối quan hệ 1 đến 1 với công việc
Đây là truy vấn hoạt động mà tôi không có bất kỳ thông tin nào về quy hoạch phẫu thuật
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
Tôi nghĩ tôi muốn thực hiện một phép nối trái để nó hiển thị mọi công việc theo thứ tự, với tất cả thông tin trong truy vấn ở trên, nhưng khi có một Surgical_Planning cho công việC# Tôi muốn có một cột cho điều đó. Đây là nỗ lực của tôi không hoạt động
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'
Tôi có thể thực hiện phép nối cơ bản này theo cách tôi muốn, nhưng nếu tôi muốn thêm nhiều cột như trên thì nó không hoạt động.
SELECT job, planning_id
FROM job
LEFT JOIN Surgical_Planning ON job = Surgical_Planning.job_job
cũng có thể sử dụng truy vấn con? Tôi có thể tìm ra các truy vấn cơ bản hơn nhưng thực sự gặp rắc rối với các truy vấn phức tạp và truy vấn phụ phức tạp hơn. bất kỳ lời khuyên nào được đánh giá cao.
EDIT --- bảng Job schema
- Bảng mmrl
. job
BẢNG DROP NẾU TIẾP THEO mmrl
. job
;
TẠO TẠO NẾU KHÔNG PHÁT HIỆN mmrl
.job
(
job
INT (11) AUTO_INCREMENT NOT NULL,
type
VARCHAR (45) NULL,
status
VARCHAR (45) NULL DEFAULT NULL,
timestamp
dấu thời gian KHÔNG DEFAULT NULL CURRENT_TIMESTAMP ON CẬP NHẬT CURRENT_TIMESTAMP,
KEY CHÍNH (job
))
ENGINE = InnoDB
DEFAULT CHARACTER SET = latin1;