У меня проблема с INNER JOIN и PDO. Мой запрос работает отлично, когда не используется INNER JOIN. При добавлении INNER JOIN к запросу ничего не отображается.Внутреннее соединение и PDO
Действительно ли это путь, или я совершенно неправ?
Любые предложения?
public function search($searchterm)
{
$query = $this->db->prepare("
SELECT
ad.id AS idet,
ad.lid,
ad.firstname AS firstnamer,
ad.surname AS surnamer,
ad.socialnr AS socialnumber,
ba.class AS classes
FROM `everybody` ad
INNER JOIN `students` ba
ON idet = ba.id
WHERE (`firstname` LIKE :search OR `surname` LIKE :search OR `classes` LIKE :search)");
$searchterm = '%' . $searchterm . '%';
$query->bindParam(':search', $searchterm, PDO::PARAM_STR);
$query->execute();
while($row = $query->fetch(PDO::FETCH_ASSOC)) {
echo $row['idet']. ' : '. $row['firstnamer']. ' '. $row['surnamer']. ' - '. $row['socialnumber']. ' Class: '. $row['classes']. '<br />';
}
}
Никаких результатов, возвращенных из 'INNER JOIN', не указывает, что объединенная таблица не имела строк, соответствующих условию' ON', или все совпадения были отфильтрованы в разделе 'WHERE'. Если вам нужны строки, возвращенные из первой таблицы, независимо от совпадений во втором, вы должны использовать 'LEFT JOIN'. –
'ON idet = ba.id' ваше состояние не соответствует вашим псевдонимам, где« объявление »? вам нужно 'ON ad.id = ba.id' – Mihai
Включены ли исключения для ошибок PDO? – Barmar