Ошибка внутреннего соединения SQL с PHP PDO

0

У меня возникли проблемы с повторной перезаписью этого оператора SQL, чтобы заставить его работать с PDO, но он продолжает давать мне ошибку

1066 - Не уникальная таблица/псевдоним: "места"

Пробовал много вещей и просто задавался вопросом, есть ли у кого-нибудь идея о том, что не так. Спасибо еще раз.

Оператор SQL:

SELECT tournaments.tour_id, tournaments.price, tournaments.description, venues.venue_name 
FROM tournaments, venues 
INNER JOIN venues on tournaments.venue_id = venues.id

Таблицы: турниры, места проведения

таблица турниров

Изображение 174551

таблица встреч

Изображение 174551

В моем реальном PHP-коде я обращаюсь к нему так.

$statement = $pdo->query($sql);
if($statement->rowCount()){
        while ($dnn = $statement->fetch_object()) {
                echo "{$dnn->tour_id} {$dnn->venue_name}<br/>";
        }
} else {
        echo "no results";
}
  • 1
    Это должно быть FROM tournaments
Теги:

2 ответа

2
Лучший ответ

Вы можете попробовать с нижеследующим запросом

SELECT tournaments.tour_id, tournaments.price, tournaments.description, 
venues.venue_name 
FROM tournaments
INNER JOIN venues on tournaments.venue_id = venues.id

В вашем запросе "ОТ турниров, мест проведения" - проблема

  • 1
    Ах, я забыл, что при внутреннем объединении вам не нужно идентифицировать обе таблицы. Спасибо, сэр!
2
SELECT tournaments.tour_id, tournaments.price, tournaments.description, 
venues.venue_name 
FROM tournaments
INNER JOIN venues on tournaments.venue_id = venues.id

FROM tournaments, venues INNER JOIN venues это не способ внутреннего соединения. Внутреннее соединение в той же таблице с разными столбцами. Place_id - это турнирная таблица, но не в таблице мест. Это является причиной вашей ошибки.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню