我正在尝试从4个表中获取数据,并且编写了一个查询
SELECT c.id,c.name,c.price,c.duration,c.period,c.practical_classes,c.theory_classes,e.id,e.created_at,u.id,u.registration_no,i.id,i.amountpaid,(i.amount-i.amountpaid) as balanceamount FROM courses c,coursesenrolled e, users u,invoices i WHERE e.student="11" AND e.course=c.id AND c.delete_status="0" AND c.status="Available" AND u.id="11" AND i.student=e.student
而且我得到的结果就像下面的图片一样,这里的原始数据是重复的。如果我在查询中添加GROUP BY,则后3列会获得错误的数据
下面我附上表格格式1.“课程”,2.“ coursesenrolled”,用于处理将课程分配给哪些用户的数据3.“用户”4.发票将为用户处理发票
我试图理解这个问题,所以您想为id = 11的用户获取结果,对吧?试试这个
SELECT DISTINCT c.id,c.name,c.price,c.duration,c.period,c.practical_classes,c.theory_classes,e.id,e.created_at,u.id,u.registration_no,i.id,i.amountpaid,(i.amount-i.amountpaid) as balanceamount FROM courses AS c INNER JOIN coursesenrolled AS e ON e.course=c.id INNER JOIN users AS u ON u.id=e.student INNER JOIN invoices AS i ON i.student=u.id WHERE u.id='11' AND c.delete_status='0' AND c.status='Available';