Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL] pomysł na zapytanie
innter
post
Post #1





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 10.08.2016

Ostrzeżenie: (0%)
-----


bardzo uproszczona wersja tabeli:
http://sqlfiddle.com/#!9/56f528

chciałbym pobrać wszystkie książki dla library='library_1' i dodatkowo wszystkie książki dla library_2, ale tylko wtedy, gdy library_1 ich nie posiada (w przykładzie chodzi o book_5)
Nie wiem czy dobrym rozwiazaniem jest uzycie uniona bo mam kilka joinów/left joinów
Obecnie robię 2 selecty i dalej dane obrabiam w php. Zastanawiam się nad optymalnym rozwiazaniem tego po stronie bazy
Go to the top of the page
+Quote Post
szczemp
post
Post #2





Grupa: Zarejestrowani
Postów: 149
Pomógł: 9
Dołączył: 9.12.2010

Ostrzeżenie: (0%)
-----


  1. SELECT book_id FROM test WHERE library = 'library_1' OR library = 'library_2' GROUP BY book_id
Go to the top of the page
+Quote Post
innter
post
Post #3





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 10.08.2016

Ostrzeżenie: (0%)
-----


jezeli zapuszczę coś takiego
http://sqlfiddle.com/#!9/56f528/10
to book_1 pobrało mi z library_0 bo jest wyzej w tabeli, a to jest dla mnie dosyc istotne
wtedy chciałbym, żeby wynik wygladał tak:
http://sqlfiddle.com/#!9/56f528/15
Go to the top of the page
+Quote Post
mmmmmmm
post
Post #4





Grupa: Zarejestrowani
Postów: 1 421
Pomógł: 310
Dołączył: 18.04.2012

Ostrzeżenie: (0%)
-----


select t1.*, t2.* from test t1 LEFT JOIN test t2 ON t1.book_id=t2.book_id AND t2.library='library_1'
where t1.library='library_1' or (t1.library='library_2' and t2.book_id is null)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 15.09.2025 - 14:58