Я привык делать запросы с sparql, но я должен сделать это с помощью mysql, что я действительно не знаю синтаксиса. У меня есть эти три таблицы:mysql inner join 3 таблицы и объединение
Продукты:
id o
1 p1
2 p2
Спецификация:
id o
3 sp1
4 sp2
Источник:
id o
1 s1
3 s1
2 s2
4 s2
Как мы видим, продукты и технические характеристики могут быть подключены с источником разных идентификаторов, поэтому я думаю, что мне нужно сделать 2 выбора с 2 внутренним соединением s между исходным> продукт и источник> спецификации и внутреннее соединение между 2 выбирает:
SELECT * FROM
(
SELECT pt.o as po, st.id as psID, st.o as pso
FROM source_test st
inner join products_test pt on st.id = pt.id
) x INNER JOIN
(
SELECT st2.o as spo, st1.id as spsID,st1.o as spso
FROM source_test st1
inner join specification_test st2 on st1.id =st2.id
) y
Это дает:
po psID pso spo spsID spso
p1 1 s1 sp1 3 s1
p2 2 s2 sp1 3 s1
p1 1 s1 sp2 4 s2
p2 2 s2 sp2 4 s2
Теперь мне нужно фильтровать продукт (ПО) и спецификации (SPO) которые имеют один и тот же источник (PSO), (SPSO)
Я я делать вещи правильно, что может быть продолжением или хороший запрос, чтобы получить:
po spo spso
p1 sp1 s1
p2 sp1 s2
Заранее спасибо.
Вы можете удалить тег SQL Server. Это другой продукт. Многие решения SQL Server не работают в MySQL, и наоборот. –