sortowanie po nazwisku, dwie tabele

sortowanie po nazwisku, dwie tabele
OI
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2
0

Witam,
mam dwie tabele:

autorzy
id, nazwisko, imie

ksiazki
id, tytul, id_autor1, id_autor2, id_autor3

Zastanawiam się jak posortować alfabetycznie te nazwiska, ponieważ używając zapytania:

SELECT a.id, k.id_autor1, a.nazwisko, a.imie, k.id_autor2, a.nazwisko, a.imie, k.id_autor3, a.nazwisko, a.imie FROM ksiazki k JOIN autorzy a ON
k.id_autor1=a.id
ORDER BY a.nazwisko, a.imie

w każdej kolumnie z nazwiskiem wyświetla mi się nazwisko dla pierwszego autora. Brakuje powiązania między nazwiskiem a danym id. Jak uzyskać takie powiązanie? Z góry dzięki za odpowiedź

krzysiek050
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1272
0

Spróbuj:

Kopiuj
SELECT a.id, k.id_autor1, a.nazwisko, a.imie, k.id_autor2, a.nazwisko, a.imie, k.id_autor3, a.nazwisko, a.imie FROM ksiazki k JOIN autorzy a ON
k.id_autor1=a.id or k.id_autor2=a.id or k.id_autor3=a.id 
ORDER BY a.nazwisko, a.imie
OI
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2
0

Niestety efekt jest taki sam tzn. wyświetla się nazwisko pierwszego autora.

Vardamir
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
0

Nie pierwszego, tylko tego po którym się złączyło. Powyższe zapytanie jest prawidłowe. Dla każdej książki zwraca Ci tyle wierszy ilu ta książka ma autorów.

Kopiuj
SELECT k.tytul, a.nazwisko, a.imie, a.id FROM ksiazki k JOIN autorzy a ON
k.id_autor1=a.id OR k.id_autor2=a.id OR k.id_autor3=a.id 
ORDER BY a.nazwisko, a.imie

Teraz jeśli chcesz to mieć w formie: nazwiska obok siebie, to skorzystaj z PIVOT

Hrypa
  • Rejestracja: dni
  • Ostatnio: dni
1

A co zrobisz, jak książka będzie miała czterech autorów?

perlon
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 33

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.