MySQL SQL, как добиться этого вывода? выбор столбца из другой таблицы

0

Привет, есть способ, как достичь ожидаемого результата ниже, используя приведенные ниже таблицы? Я 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
  • 0
    если вы удалите schools.id = 57 из вашего запроса, вы получите ожидаемый результат. Есть ли какая-то конкретная причина этого WHERE ?
  • 1
    Данные вашего примера не соответствуют вашему результату. Вероятно, вам нужно изменить порядок соединений, прослеживая со schools
Теги:

3 ответа

0

Решение вашей проблемы:

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

Следуйте ссылке на демо:

http://sqlfiddle.com/#!9/f0460c/3

0

выберите a.name, b.name из продуктов стиль объединения b на a.id = b.id

Я думаю, что это должно сделать работу

0

вам просто нужно удалить 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
  • 0
    Я не могу, потому что в каждой школе свой стиль

Ещё вопросы

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