sql - एसक्यूएल इनर दो से अधिक टेबल से जुड़ते हैं




inner-join (7)

मैं वर्तमान में निम्नलिखित तरीके से एक विदेशी / प्राथमिक कुंजी की समानता पर दो तालिकाओं के जुड़ने को क्वेरी कर सकता हूं।

 $result = mysql_query("SELECT * FROM `table1` 
                         INNER JOIN 
                       `table2` ON table1.primaryKey=table2.table1Id");

मैं इसे कई तालिकाओं में विस्तार करना चाहता हूं (सभी एक ही विदेशी कुंजी के साथ)। मैं निम्नलिखित कोड की कोशिश कर रहा हूं जो कुछ भी वापस नहीं कर रहा है। क्या कोई इंगित कर सकता है कि मैं क्या गलत कर रहा हूं?

 $result = mysql_query("SELECT * FROM `table1` 
                        INNER JOIN `table2` 
                        INNER JOIN table3 
                        ON table1.primaryKey=table2.table1Id=table3.table1Id");

यह कोशिश करो यहाँ वाक्यविन्यास है

SELECT table1 .columnName, table3 .columnName 
   FROM table1 
     inner join table2 
          ON table1.primarykey = table2.foreignkey 
     inner join table3 
          ON table2.primarykey = table3.foreignkey

उदाहरण के लिए: Select SalesHeader.invoiceDate,ActualSales,DeptName,tblInvDepartment.DeptCode ,LocationCode from SalesDetail Inner Join SalesHeader on SalesDetail.InvoiceNo = SalesHeader.InvoiceNo inner join tblInvDepartment on tblInvDepartment.DeptCode = SalesDetail.DeptCode


एक संभावित समाधान:

select Company.Company_Id,Company.Company_Name,
    Invoice_Details.Invoice_No, Product_Details.Price
from Company inner join Invoice_Details
    on Company.Company_Id=Invoice_Details.Company_Id
    inner join Product_Details
        on Invoice_Details.Invoice_No= Product_Details.Invoice_No
where Price='70000';

तीन या अधिक तालिका में शामिल होने के लिए यहां एक सामान्य SQL क्वेरी सिंटैक्स है। इस SQL ​​क्वेरी को सभी प्रमुख संबंध डेटाबेस जैसे MySQL, Oracle, Microsoft SQLServer, Sybase और PostgreSQL में काम करना चाहिए:

SELECT t1.col, t3.col FROM table1 join table2 ON table1.primarykey = table2.foreignkey
                                  join table3 ON table2.primarykey = table3.foreignkey

हम पहले तालिका 1 और तालिका 2 में शामिल होते हैं जो तालिका 1 और तालिका 2 से संयुक्त डेटा के साथ एक अस्थायी तालिका का उत्पादन करते हैं, जो तब तालिका 3 में शामिल हो जाता है। इस सूत्र को 3 से अधिक टेबल से एन टेबल तक बढ़ाया जा सकता है, आपको बस यह सुनिश्चित करने की आवश्यकता है कि एन टेबल से जुड़ने के लिए एसक्यूएल क्वेरी में एन -1 शामिल होना चाहिए। दो तालिकाओं में शामिल होने के लिए हमें 1 जुड़ने वाले बयान की आवश्यकता होती है और 3 तालिकाओं को जोड़ने के लिए हमें 2 जुड़ने वाले वक्तव्य की आवश्यकता होती है।


नीचे दी गई इस विधि को आज़माएं, अपनी आवश्यकता के अनुसार संशोधित करें।

SELECT
  employment_status.staff_type,
  COUNT(monthly_pay_register.age),
  monthly_pay_register.BASIC_SALARY,
  monthly_pay_register.TOTAL_MONTHLY_ALLOWANCES,
  monthly_pay_register.MONTHLY_GROSS,
  monthly_pay_register.TOTAL_MONTHLY_DEDUCTIONS,
  monthly_pay_register.MONTHLY_PAY
FROM 
  (monthly_pay_register INNER JOIN deduction_logs 
ON
  monthly_pay_register.employee_info_employee_no = deduction_logs.employee_no)
INNER JOIN
  employment_status ON deduction_logs.employee_no = employment_status.employee_no
WHERE
  monthly_pay_register.`YEAR`=2017
and 
  monthly_pay_register.`MONTH`='may'

SELECT * 
FROM table1 
INNER JOIN table2
      ON table1.primaryKey=table2.table1Id
INNER JOIN table3
      ON table1.primaryKey=table3.table1Id

SELECT eb.n_EmpId,
   em.s_EmpName,
   deg.s_DesignationName,
   dm.s_DeptName
FROM tbl_EmployeeMaster em
 INNER JOIN tbl_DesignationMaster deg ON em.n_DesignationId=deg.n_DesignationId
 INNER JOIN tbl_DepartmentMaster dm ON dm.n_DeptId = em.n_DepartmentId
 INNER JOIN tbl_EmployeeBranch eb ON eb.n_BranchId = em.n_BranchId;

select WucsName as WUCS_Name,Year,Tot_Households,Tot_Households,Tot_Male_Farmers  from tbl_Gender
INNER JOIN tblWUCS
ON tbl_Gender.WUCS_id =tblWUCS .WucsId 
INNER JOIN tblYear
ON tbl_Gender.YearID=tblYear.yearID

3 टेबल्स हैं 1. tbl_Gender 2. tblWUCS 3. tblYear





inner-join