Привет, есть способ, как достичь ожидаемого результата ниже, используя приведенные ниже таблицы? Я alredy имеет sql querty, но он возвращает только
Products table
id name
1 sample1
2 sample2
3 sample3
product_style table
product_id style_id
1 1
1 2
1 3
schools table
id name
1 school1
2 school2
3 school3
style table
id school_id name
1 1 style1
2 1 style2
3 2 style3
4 2 style4
5 57 style57
school_products table
school_id product_id
1 1
1 2
1 3
Я хочу выбрать столбец style_name в таблице стилей
SELECT from prodcuts.name, style.name
FROM school_products
LEFT JOIN products on school_products.product_id = products.id
LEFT JOIN schools on school_products.id = schools.id
LEFT JOIN styles on school_products.id = styles.schools_id
WHERE schools.id = 57
мой текущий вывод запроса
products.name style.name
sample style57
и моя проблема в том, что я не знаю, как добиться запроса, который будет выводить
products.name style.name
sample1 style1
sample1 style2
sample1 style3
Решение вашей проблемы:
SELECT p.name Product, s.name Style
FROM products p
INNER JOIN product_style ps
ON ps.product_id = p.id
INNER JOIN style s
ON s.id = ps.style_id
ВЫХОД:
Product Style
----------------
sample1 style1
sample1 style2
sample1 style3
Следуйте ссылке на демо:
выберите a.name, b.name из продуктов стиль объединения b на a.id = b.id
Я думаю, что это должно сделать работу
вам просто нужно удалить Where schools.id = 75
SELECT from prodcuts.name, style.name
FROM school_products
LEFT JOIN products on school_products.product_id = products.id
LEFT JOIN schools on school_products.school_id = schools.id
LEFT JOIN styles on school_products.school_id = styles.schools_id
schools.id = 57
из вашего запроса, вы получите ожидаемый результат. Есть ли какая-то конкретная причина этогоWHERE
?schools