[MySQL] dwie tabele i join

0

Witam,

potrzebuje wyciagnac informacje
pola ktore mnie interesuja to:

faktura szczegol -> nrfaktury, idksiazka
ksiazka -> idwydawca, idksiazka

i teraz takie zapytanie chce:

  1. najpierw znajdz wszystkie ksiazki z idwydawca=5
    a pozniej
    2 przeszukaj tabele faktura szczegol i pokaz mi wszystkie nrfaktury ktore zawieraja ktoras z ksiazek z wyniku z punktu 1

da sie to tym joinem zrobic w jednym zapytaniu?

Pozdrawiam.

0

Tak na szybciora...
Select * from ksiazka as K
Inner Join faktura_szczegol as FS ON (FS.idksiazki = K.id AND K.id = 5)

//Edit:
Ups. powyższy chyba jest źle - dostaniesz jeden rekord z pierwszą znalezioną fakturą w faktura_szczegolw.
To będzie chyba lepsze:
Select * from faktura_szczegol as FS
INNER JOIN ksiaska as K ON *(FS.idksiazki = K.id AND K.id = 5)

0

a nie może być

SELECT nr_faktury FROM ksiazki k, faktury_szcz f WHERE k.id_ksiazka = f.idksiazka AND k.idwydawca = 5
0

Pewnie. Różnica jednak jest następująca: w Twoim przypadku połączy każdy wiersz z tabeli książki z każdym wierszem z tabeli faktury_szcz, a potem z takiej (wielkiej czasami) tabeli wybierze te, które spełniają warunek po where.
W moim przypadku łącząc wiersz z tabeli faktura_szczegol połączy tylko z tymi wierszami z tabeli ksizka które spełniają warunek w ON (...).

0

taaaaa
a świstak siedzi bo sreberka były nieletnie....

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