Соединение таблицы базы данных отображает несколько записей одинаковых строк, когда я хочу только один - PullRequest
0 голосов
/ 10 февраля 2012

Я выполняю объединение таблиц в базе данных 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 />";
}   

Это распечатывает несколько записей того, что я хочу. Интересно, что-то я делаю не так?

Ответы [ 2 ]

1 голос
/ 10 февраля 2012

Вы должны использовать предложение DISTINCT , например:

SELECT DISTINCT streams.name, streams.desc, users.streamnumber FROM streams, users WHERE users.streamnumber = '$_POST[streamnumber]' AND users.streamnumber = streams.name
1 голос
/ 10 февраля 2012

Попробуйте это:

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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...