2012-03-02 17 views
6

मैं अपने काम के लिए डेटाबेस बना रहा हूं और मुझे यह प्रश्न बनाने के तरीके को समझने में परेशानी हो रही है।mysql कई कॉलम के साथ शामिल हो गया

मेरी समस्या के लिए प्रासंगिक टेबल हैं:

काम

Surgical_Planning - विदेशी कुंजी के रूप में काम किया है, कुछ नौकरियों के लिए मौजूद है, दूसरों

Medical_Model के लिए नहीं है - विदेशी कुंजी के रूप में काम किया है , काम के साथ संबंध 1 1 के लिए

यह है जहाँ मैं शल्य नियोजन के बारे में कोई जानकारी नहीं है एक काम क्वेरी है

मुझे लगता है कि मैं एक बाएं शामिल करना चाहता हूं ताकि यह उपरोक्त क्वेरी में सभी जानकारी के साथ क्रमशः प्रत्येक नौकरी प्रदर्शित करे, लेकिन फिर जब नौकरी के लिए सर्जिकल_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 

एक सबक्वायरी भी इस्तेमाल किया जा सकता है? मैं इन और बुनियादी प्रश्नों को समझ सकता हूं लेकिन इन जटिल जटिलताओं और उप-वर्गों में वास्तव में परेशानी है। किसी भी सलाह की सराहना की है।

संपादित करें --- नौकरी तालिका स्कीमा


- टेबल mmrljob


ड्रॉप तालिका यदि mmrl मौजूद है। job;

तालिका बनाएं यदि mmrl मौजूद नहीं है।job (

job INT (11) नहीं NULL AUTO_INCREMENT,

type VARCHAR (45) शून्य,

status VARCHAR (45) शून्य डिफ़ॉल्ट शून्य,

timestamp टाइमस्टैम्प नहीं NULL डिफ़ॉल्ट CURRENT_TIMESTAMP पर अद्यतन CURRENT_TIMESTAMP,

प्राथमिक कुंजी (job))

इंजन = इनो डीबी

डेफॉल्ट वर्णक सेट = लैटिन 1;

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' 

को
LEFT JOIN Surgical_Planning ON job.job = Surgical_Planning.job_job 
WHERE Scan.job_job = job AND phys.job_job = job 
AND med.job_job = job AND job.type = 'medical' 

संपादित

उत्तर

11

परिवर्तन:

बाईं में शामिल होने के वास्तविक LEFT JOIN वाक्य रचना के बाईं ओर तालिका के विरुद्ध होता है। अपनी सूची के अंत में नौकरी ले जाएं और पुनः प्रयास करें।

FROM patient_has_physician as phys, Scan, Medical_Model as med, job 
संबंधित मुद्दे