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