我在mysql数据库上进行表连接。
我希望结果只显示一次,但每次有与查询匹配的条目时都会显示。
这是我到目前为止所做的:
$descquery = "SELECT streams.name, streams.desc, users.streamnumber FROM streams, users WHERE users.streamnumber = '$_POST[streamnumber]' AND users.streamnumber = streams.name";
$result = mysql_query($descquery) or die(mysql_error());
// Print out the contents of each row into a table
while($row = mysql_fetch_array($result)){
echo $row['name']. " - ". $row['desc'];
echo "<br />";
}
这会打印出我想要的多个条目。只是想知道是不是我做错了什么?
答案 0 :(得分:1)
试试这个:
SELECT DISTINCT s.name, s.desc, u.streamnumber
FROM streams s INNER JOIN users u
ON u.streamnumber = '$_POST[streamnumber]'
AND u.streamnumber = s.name
请记住,在查询中使用它之前必须始终清理用户输入,以避免sql注入。
答案 1 :(得分:1)
您必须使用 DISTINCT 子句,如下所示:
SELECT DISTINCT streams.name, streams.desc, users.streamnumber FROM streams, users WHERE users.streamnumber = '$_POST[streamnumber]' AND users.streamnumber = streams.name