[当使用mysqlQuery重复某些值时未得到预期的结果

问题描述 投票:0回答:1

我正在尝试从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列会获得错误的数据result after executing query without adding Group By

如果添加分组依据,将得到以下结果result with Group By in query

下面我附上表格格式1.“课程”,table name: course2.“ coursesenrolled”,用于处理将课程分配给哪些用户的数据courses enrollled3.“用户”enter image description hereenter image description here4.发票将为用户处理发票enter image description here

mysql database mysql-error-1064
1个回答
0
投票

我试图理解这个问题,所以您想为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';
© www.soinside.com 2019 - 2024. All rights reserved.