Mam pytanie na temat wykorzystania rekurencyjnego SQL, w którym mam następujące struktury tabeliWdrożenie rekurencyjne zapytanie w SQL
Produkty mogą być w wielu grupach (dla jasności, nie używam int)
CREATE TABLE ProductGroups(ProductName nvarchar(50), GroupName nvarchar(50))
INSERT INTO ProductGroups(ProductName, GroupName) values
('Product 1', 'Group 1'),
('Product 1', 'Group 2'),
('Product 2', 'Group 1'),
('Product 2', 'Group 6'),
('Product 3', 'Group 7'),
('Product 3', 'Group 8'),
('Product 4', 'Group 6')
+-----------+---------+
| Product | Group |
+-----------+---------+
| Product 1 | Group 1 |
| Product 1 | Group 2 |
| Product 2 | Group 1 |
| Product 2 | Group 6 |
| Product 3 | Group 7 |
| Product 3 | Group 8 |
| Product 4 | Group 6 |
+-----------+---------+
teraz pytanie chcę znaleźć wszystkie produkty związane więc tj jeśli mijam produktu 1 potem muszę następujący wynik
+-----------+---------+
| Product | Group |
+-----------+---------+
| Product 1 | Group 1 |
| Product 1 | Group 2 |
| Product 2 | Group 1 |
| Product 2 | Group 6 |
| Product 4 | Group 6 |
+-----------+---------+
Więc zasadniczo Chcę najpierw dowiedzieć się wszystkich grup dla produktu 1, a następnie dla każdej grupy chcę znaleźć wszystkie produkty i tak dalej ...
- Produkt 1 => Grupa 1 , Grupa 2;
- Grupa 1 => Produkt 1, Produkt 2 (Grupa 1 i Produkt 1 już istnieją, więc należy ich unikać, w przeciwnym razie przechodzi w nieskończoną pętlę );
- Grupa 2 => Produkt 1 (już istnieje tak samo jak powyżej);
- Produkt 2 => Grupa 1 Grupa 6 (Grupa 1 i 2 produktów istnieje)
- Grupa 6 => produktów 4
Nie sądzę, że składnia fragmentu jest dobrym pomysłem w tym kontekście, nawet jeśli wyjście, które chcesz, jest sformatowane jako HTML. Bardzo mnie to kusiło, żeby go usunąć, ale nie jestem pewien, jakie znaczenie przypisuje sekcji CSS w pliku wyjściowym. Myślę, że należy go pominąć, ale to jest twoje pytanie. –
Proponuję właśnie tworzyć tabele ASCII używając czegoś takiego jak https://ozh.github.io/ascii-tables/ – Blorgbeard
Przepraszam, że przez pomyłkę właśnie edytowałem, więc teraz pokazuje poprawne wyjście ... –