Skocz do zawartości

[MySql] zakręcone zapytanie z 2 tabel


nrm

Rekomendowane odpowiedzi

Hej.

mam mały problem z zapytaniem.

2 tabele:

notki

id | kat_id1 | kat_id2 | kat_id3 | kat_id4 | text

1 | 1 | 6 | 12 | 15 | blabla

kategorie

id | nazwa

1 | nazwa jedynki

6 | nazwa szóstki

i pytanko wyszło takie (pominalem nieistotne pola):

SELECT SQL_CALC_FOUND_ROWS n.kat_id1, n.kat_id2, n.kat_id3, n.kat_id4, n.text, k.nazwa, k.id 
							   FROM tv_notki n, tv_kat k
							   WHERE n.kat_id1 = k.id
							   OR n.kat_id2 = k.id
							   OR n.kat_id3 = k.id
							   OR n.kat_id4 = k.id
							   GROUP BY n.notka_id

co mi daje

		[kat_id1] => 1
		[kat_id2] => 10
		[kat_id3] => 18
		[kat_id4] => 0
		[text] => only five people i
		[nazwa] => tytul kat_id1
		[id] => 1

no i problem bo potrzebuje mieć nazwy każdej z kategorii kat_id1 i nazwa tej katid1.

innymi słowy musze wypisać w jakich kategoriach dana notka została wpisana. cos jak na blogach...

dawno nie mieszałem w sqlu to niestety troche wypadłem z wprawy :(

ps. a może lepiej rozbic te kategorie na 4 tabele (sa to 4 typy kategorii, cos tak np. kolor, kształt itp.)?

Tyle, z emusze uważac na ilośc pytań, to będzie mocno obciążone... Jakby to by byly osobne tabele to chyba pytanie bylo by proste o ile mozna tak robić z 5cioma tabelami :P

Odnośnik do komentarza
Udostępnij na innych stronach

Tak na szybko, wydaje mi się, że JOIN będzie tutaj pasował, może nie działać, ale idea jest taka

SELECT SQL_CALC_FOUND_ROWS n.kat_id1, n.kat_id2, n.kat_id3, n.kat_id4, n.text, k.nazwa, k.id
                                  FROM tv_notki n
                                  JOIN tv_kat k ON (n.kat_id1=k.id OR n.kat_id2 = k.id OR n.kat_id3 = k.id OR n.kat_id4 = k.id
                                  )
                                  GROUP BY n.notka_id

Można jeszcze to przerobić na JOIN i USING

Odnośnik do komentarza
Udostępnij na innych stronach

@michal: to daje dokładnie to samo.

MMP mi pomógl na GG w zamian za co dostał dobrą życiowa radę ("nie żeń się chłopie" ;)).

Troche źle (standardowo u mnie) podszedłem do problemu. Pobrałem to sobie 2 pytaniami i zestawiłem w tablicy. Albo teraz całośc skeszuje, albo dopisze sobie pseudo kesz do creole, którego będe używał właśnie do pobierania kategorii.

dzieki.

Odnośnik do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę. Warunki użytkowania Polityka prywatności