当我使用Select语句显示来自Mysql Db的数据时。我得到重复的价值观。如何解决这个问题?我的SQL查询是这样的:
$sql="SELECT r.hosteladmissionno,r.student_name,r.semester,
m.billmonth,m.billyear,m.wastagecharge,b.exp_amount
FROM registration r, messexp m, blockexp b
WHERE r.mess_type = '".$q."' AND r.mess_type=m.messtype AND r.status_flag=1";
答案 0 :(得分:3)
您应该在查询中使用内部联接。否则,每个注册结果将与messexp的每个结果相结合......
$sql="SELECT registration.hosteladmissionno,
registration.student_name,
registration.semester,
messexp.billmonth,
messexp.billyear,
messexp.wastagecharge,
blockexp.exp_amount
FROM registration
INNER JOIN messexp ON (messexp.id_registration = registration.id)
INNER JOIN blockexp ON (blockexp.id_messexp = messexp.id)
WHERE
registration.mess_type = '".$q."' AND status_flag=1";
请注意,ON(...)将根据您的架构而改变
答案 1 :(得分:3)
您已交叉加入表格,因此您可以获得每个结果组合。 连接where子句中的表:
select tab1.column1, table2.column1
from tab1, tab2
where tab1.fkColumn = tab2.idColumn
将表格相互连接的列是什么?