У меня есть следующие таблицы:получить правильный результат с помощью MySQL Query
**products** which has these fields: id,product,price,added_date
**products_to_categories** which has these fields: id,product_id,category_id
**adverts_to_categories** -> id,advert_id,category_id
**adverts** which has these fields: id,advert_name,added_date,location
Я не могу запустить запрос, который будет возвращать мне все продукты, которые из категории 14 и которые принадлежат объявлениям, расположенным в Лондоне. Итак, у меня есть 4 таблицы и 2 условия - от 14-й категории, а владелец продукта - от Лондона. Я пробовал много вариантов для выполнения sql, но ни один из результатов не был прав. Нужно ли использовать Join, а какие Join - left, right, full? Как будет выглядеть правильный sql? спасибо заранее за вашу помощь и извините за расточные вас :)
Это то, что я пытался до сих пор:
SELECT p.id, product, price, category_id,
p.added_date, adverts.location, adverts.id
FROM products p,
products_to_categories ptc,
adverts,
adverts_to_categories ac
WHERE ptc.category_id = "14"
AND ptc.product_id=p.id
AND ac.advert_id=adverts.id
AND adverts.location= "London"
Что вы пытались и как были неверны результаты? –
ВЫБОР p.id, продукт, цена, category_id, p.added_date, adverts.location, adverts.id из продуктов р, products_to_categories, объявления термисторов, adverts_to_categories переменного тока ГДЕ ptc.category_id = "14" И ptc.product_id = p.id И ac.advert_id = adverts.id И adverts.location = "Лондон", но это возвращает неверные результаты. – Europeuser
Первый statrt, никогда не используя неявный синтаксис снова. Это aspil antipattern и очень плохой метод программирования. – HLGEM