Соединение двух таблиц не работает

0

У меня есть оператор SQL, см. Ниже. Я не уверен, как я могу положить в другой стол. Я пробовал несколько вещей, но все это появляется как ошибки. Мне нужно отображать элементы из двух таблиц. Это две отдельные таблицы, единственная вещь - это дата в обоих.

Кто-нибудь может мне помочь?

$value = $_GET['id']; 
             $dbQuery = $conn->prepare("SELECT * FROM Appointment INNER JOIN Results WHERE Date=:value");
             $dbParams = array(':value'=>$value);
             $dbQuery->execute($dbParams);
  • 2
    Ваш код уязвим для внедрения SQL, вы не используете правильно подготовленные операторы.
  • 3
    Есть ли должна быть from туда?
Показать ещё 1 комментарий
Теги:

3 ответа

2

В вашем коде отсутствует оператор ON для вашего соединения. Другая проблема заключается в том, что вы не указываете, какая Date используется в вашем состоянии. Это не большая разница в коде, но нижеприведенный сниппет должен решить проблему с вашим соединением, а для получения дополнительной информации о соединениях следуйте этой ссылке

$value = $_GET['id']; 
$dbQuery = $conn->prepare("SELECT * FROM Appointment INNER JOIN Results ON Appointment.Date = Results.Date WHERE Results.Date=':value'");
$dbParams = array(':value'=>$value);
$dbQuery->execute($dbParams);
  • 1
    Спасибо, что наконец дали правильный ответ, после двух ответов, полностью лишенных объяснений и форматирования кода.
  • 1
    Хороший ответ, но вы не должны объединять данные в запросе, или какой смысл использовать подготовленные операторы?
Показать ещё 8 комментариев
1

Если несколько таблиц в запросе имеют одно или несколько общих имен полей, эти имена полей должны быть квалифицированы с именем таблицы (или псевдоним, используемый для таблицы, если таковой имеется).

Кроме того, в вашем запросе отсутствует условие соединения, поэтому, если задан параметр Назначения (отдельно), вы должны назначить каждую встречу на эту дату в паре с каждой отдельной строкой из таблицы results.

1

Вам нужно использовать ON для связи двух таблиц

SELECT * FROM Appointment as a
INNER JOIN Results as r
ON a.Date = r.Date
WHERE r.Date=:value

https://www.w3schools.com/sql/sql_join_inner.asp

Ещё вопросы

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