@rinaz22

Почему выходит ошибка, когда пытаюсь взять данные с 2-х таблиц?

Всем привет! Нужно вывести все записи, кроме тех, у которых id записи с таблицы orders нет в таблице applications. Для этого пробовал так, но не работает:
mysqli_query($db, "SELECT * FROM `orders` WHERE `city` = '$row[city]' AND `id` NOT IN (SELECT `id` FROM `applications` WHERE `user` = '$row[id]' AND `order_id` = `orders.id`)");
// Ошибка: Unknown column 'orders.id' in 'where clause'

Пробовал так, но тоже не работает:
mysqli_query($db, "SELECT * FROM `orders`, `applications` WHERE `orders.city` = '$row[city]'");
// Ошибка: Unknown column 'orders.city' in 'where clause'
  • Вопрос задан
  • 48 просмотров
Решения вопроса 1
nokimaro
@nokimaro
Меня невозможно остановить, если я смогу начать.
Не можете правильно расставить ` то лучше вообще не используйте
конкретно ошибка тут `orders.city` а правильно `orders`.`city`

Такой вариант тоже будет нормально отрабатывать
SELECT * FROM orders WHERE city = '$row[city]' 
AND id NOT IN (SELECT id FROM applications WHERE user = '$row[id]' AND order_id = orders.id)"


SELECT * FROM orders, applications WHERE orders.city = '$row[city]'
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@Vitsliputsli
Нужно вывести все записи, кроме тех, у которых id записи с таблицы orders нет в таблице applications

Примерно так:
select orders.*
    from orders
    join applications on orders.id=applications.id

поправьте, под свои требования.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы