![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 34 Pomógł: 0 Dołączył: 26.01.2005 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Mam taką zagwostkę. Mam bazę w której jest tabela z kolumną a w niej wartości rozdzielane przecinkiem (1243, 564, 3244, 3455). Są to numery Id z innej tabeli tej samej bazy. Chciałbym w zapytaniu wyciągnąć tą wartość rozdzielić te numery ID i odnieść się za ich pomocą do drugiej tabeli aby wyciągnąć po tej relacji inne wartości (nazwy). Czy zna ktoś może takie zapytanie ? Pozdrawiam serdecznie, Marcin |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 421 Pomógł: 310 Dołączył: 18.04.2012 Ostrzeżenie: (0%) ![]() ![]() |
Ja znam rozwiązanie: znormalizuj tabele...
Zanim nie zabrniesz za daleko. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 34 Pomógł: 0 Dołączył: 26.01.2005 Ostrzeżenie: (0%) ![]() ![]() |
Niestety nie mogę tego zrobić to baza systemu TYPO3. Wydaje mi się też ze to nie jest rozwiązanie dodane tam przez zewnętrzną osobę
![]() |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 6 378 Pomógł: 1116 Dołączył: 30.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
To w sumie wystarczy tylko te numery dać do WHERE id IN() jeśli wszystkie je chcesz sprawdzić.
-------------------- |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 34 Pomógł: 0 Dołączył: 26.01.2005 Ostrzeżenie: (0%) ![]() ![]() |
Hej dzieki za podpowiedź. Prawie działa
![]() Dałem takie zapytanie:
gdzie title to interesująca mnie nazwa uid pierwsze to id łączący a z drugiego zapytania (w nawiasie) pole fe_group posiada ten ciąg do rozbijania na poszczególne idy. Niestety pobiera tylko pierwszy id z tego ciągu i zwraca jedną nazwę. Można prosić o pomoc co robię źle ? Ten post edytował sokot 23.04.2015, 12:19:40 |
|
|
![]()
Post
#6
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
IN oczekuje listy IDkow a nie tekstu z IDkami. To dwie rozne rzeczy
![]() @viking chyba mial na mysli, ze najpierw te IDki masz pobrac w php a potem wykonac drugie zapytanie z IN ze zmienną z PHP. Bo niczego innego sobie nie wyobrazam co mogl miec viking na mysli -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 34 Pomógł: 0 Dołączył: 26.01.2005 Ostrzeżenie: (0%) ![]() ![]() |
Aha
![]() Kurcze szkoda. Ale wydaje mi się że jest jakaś możliwość pobrania tych idków do wyniku zapytania w tablice (liste) i wtedy by zadziałało. Tylko w samym zapytaniu w nawiasie trzeba było rozbijać ciąg. Kurcze jesli ktoś coś słyszał to będe wdzięczny. |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 6 803 Pomógł: 1827 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
Przebuduj bazę jak Ci wcześniej polecano. -------------------- |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 6 378 Pomógł: 1116 Dołączył: 30.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
A możesz wstawić na szybko strukturę tych tabel, okrojoną do potrzebnych pól, po której chcesz łączyć? Będzie konkretnie wiadomo co chcesz osiągnąć.
-------------------- |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 34 Pomógł: 0 Dołączył: 26.01.2005 Ostrzeżenie: (0%) ![]() ![]() |
To wielkie tabele są, mam phpmyadmin i za bardzo nie wiem czy tam się da jakoś wyciągnąć zobrazowane połączenie (najlepiej tych dwóch tabel bo wszystkich jest ponad 200) prykład z CONCATEM średnio pomógł albo ja nie umiem tego ogarnąć do końca, co jest możliwe
![]() Pozdrawiam, ![]() Dla zobrazowania mam id prawej tabeli po nim dostaje się do ciągu który musze rozbić i przeszukać uid lewej tabeli tymi idami aby wyciągnąć zmienne title ![]() Oczywiście rekordów w jednej jak i drugiej tabeli jest o wiele więcej. Pozdrawiam, Ten post edytował sokot 23.04.2015, 14:34:36 |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 6 803 Pomógł: 1827 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
Pokaż jakie zapytanie utworzyłeś.
-------------------- |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 6 378 Pomógł: 1116 Dołączył: 30.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
Przykładowo (lewa to movies, prawa datas)
select m.* from movies m join datas d where FIND_IN_SET(m.id, dane) Choć z tego co widzę nie korzysta to z indeksu więc słabe. Trzeba by sprawdzić czasy - czy nie będzie się bardziej opłacało zrobić array integerów w php i podstawić do IN(). `dane` to kolumna ciąg Ten post edytował viking 23.04.2015, 15:09:46 -------------------- |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 34 Pomógł: 0 Dołączył: 26.01.2005 Ostrzeżenie: (0%) ![]() ![]() |
musze to w zapytaniu ogarnąć bez phpa.
Oto moje zapytanie które nie działa ![]()
Hej, Finalnie udało siędwoma zapytaniami ![]() Oto one:
Ale jak ktoś jest w stanie poprawić moje jedno zapytaniiowe zapytanie ![]() Pozdrawiam ![]() |
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 6 803 Pomógł: 1827 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
Czemu robisz GROUP_CONCAT na p.ciag?
Próbowałeś zapytanie, które podał viking? -------------------- |
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 34 Pomógł: 0 Dołączył: 26.01.2005 Ostrzeżenie: (0%) ![]() ![]() |
Dostałem taką podpowiedź jeszcze w innym forum.
Udało mi się też ogarnąć jednym zapytaniem. Oto ono:
Pozdrawiam i dzięki za wpsomaganie ![]() Ten post edytował sokot 23.04.2015, 15:51:24 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 26.06.2025 - 10:28 |