การ Qurey ข้อมูล ครับ Mysql รบกวนด้วยครับ มือใหม่ครับ
คือข้อมูลในตารางของผมนะครับมีสองตาราง คือ
EMP(table)
column -> emp_code name position
1 n1 p1
Product(table)
column -> emp_code ProName Item
1 pro1 it1
1 pro2 it2
Lv(table)
column -> emp_code Fail Retest1
1 fa1 re1
1 fa2 re2
แล้วผม query โดย
SELECT EMP.emp_code, EMP.name, EMP.position, Product.Proname, Product.Item, Lv.Fail, Lv.Retest1
FROM EMP INNER JOIN
Product ON EMP.emp_code = Product.emp_code INNER JOIN
Lv ON EMP.emp_code = Lv.emp_code
WHERE (EMP.EMP_CODE = '1')
ผลที่ต้องการคือ
emp_code name position ProName Item Fail Retest1
1 n1 p1 pro1 it1 fa1 re1
1 n1 p1 pro2 it2 fa2 re2
แต่ที่ได้คือ
emp_code name position ProName Item Fail Retest1
1 n1 p1 pro1 it1 fa1 re1
1 n1 p1 pro1 it1 fa2 re2
1 n1 p1 pro2 it2 fa1 re1
1 n1 p1 pro2 it2 fa2 re2
ต้องแก้ปันหายังไงไม่ให้เช็คทุกกรณีครับ มีข้อแนะนำวิธีอื่นก็ได้เลยครับ ขอบคุณครับTag : ASP, MySQL, Ms SQL Server 2005, Web (ASP.NET), C#
Date :
2014-06-10 11:06:50
By :
thongchai001
View :
975
Reply :
4
Code (SQL)
SELECT EMP.emp_code, EMP.name, EMP.position, Product.Proname, Product.Item, Lv.Fail, Lv.Retest1
FROM EMP
INNER JOIN Product ON EMP.emp_code = Product.emp_code
INNER JOIN Lv ON EMP.emp_code = Lv.emp_code
WHERE (EMP.EMP_CODE = '1')
GROUP BY Product.Proname
Date :
2014-06-10 11:45:54
By :
CPU4Core
ใช้ group by อย่างคุณ cpu4core ว่าน่าจะถูกแล้วครับ
แต่ต้องเพิ่มเข้าไปอีกเป็น
Code (SQL)
group by EMP.emp_code, EMP.name, EMP.position, Product.Proname, Product.Item, Lv.Fail, Lv.Retest1
สาเหตุก็เพราะ inner join มันจะทำให้เราได้มาหลายบรรทัด
เพื่อทำให้กลายเป็นบรรทัดเดียวกันได้ต้องใช้ group by เข้ามาช่วย
Date :
2014-06-11 12:16:15
By :
deksoke
Load balance : Server 01