Z góry dziękuję, po prostu nie mogę tego zdobyć!Połączyć wiele wierszy podrzędnych w jednym wierszu MYSQL
Mam dwie tabele
Ordered_Item
ID | Item_Name 1 | Pizza 2 | Stromboli
Ordered_Options
Ordered_Item_ID | Option_Number | Value 1 43 Pepperoni 1 44 Extra Cheese 2 44 Extra Cheese
Co szukam wyjścia jest zapytanie mysql jest coś w tej sprawie
Wyjście
ID | Item_Name | Option_1 | Option_2 1 Pizza Pepperoni Extra Cheese 2 Stromboli NULL Extra Cheese
Próbowałem liczne opcje najbardziej zakończenie w błąd składni, próbowałem group_concat ale nie to jest to naprawdę to, co szukam. Mam prosty przykład poniżej tego, co moim zdaniem może być początkiem. Potrzebuję opcji, aby za każdym razem być w tej samej kolejności. A w programie, w którym zbierane są informacje, nie ma możliwości niezawodnego zapewnienia, że tak się stanie. Czy możliwe jest ich łączenie zgodnie z numerem opcji. Ponadto wiem, że nigdy nie będę mieć więcej niż 5 opcji, więc statyczne rozwiązanie zadziała
Select Ordered_Items.ID,
Ordered_Items.Item_Name,
FROM Ordered_Items
JOIN (SELECT Ordered_Options.Value FROM Ordered_Options Where Option_Number = 43) as Option_1
ON Ordered_Options.Ordered_Item_ID = Ordered_Item.ID
JOIN (SELECT Ordered_Options.Value FROM Ordered_Options Where Option_Number = 44) as Option_2
ON Ordered_Options.Ordered_Item_ID = Ordered_Item.ID;
Dzięki! Joe
powiedział: "Próbowałem group_concat, ale to naprawdę nie jest to, czego szukam." –
Witam, Dziękuję za szybką odpowiedź, ale obawiam się, że nie podałem ważnej informacji. Potrzebuję opcji, aby za każdym razem być w tej samej kolejności. A w programie, w którym zbierane są informacje, nie ma możliwości niezawodnego zapewnienia, że tak się stanie. Czy możliwe jest ich łączenie zgodnie z numerem opcji. Wiem też, że nigdy nie będę mieć więcej niż 5 opcji, więc rozwiązanie statyczne zadziała. –
Aby zamówić elementy w grupie, można to zrobić na przykład: GROUP_CONCAT (Ordered_Options.Value ORDER BY Ordered_Options.value), –