sortowanie po nazwisku, dwie tabele

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ź

0

Spróbuj:

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
0

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

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.

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

1

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

1 użytkowników online, w tym zalogowanych: 0, gości: 1