[PHP][SQL]Dwie tabele |
[PHP][SQL]Dwie tabele |
11.08.2020, 08:31:13
Post
#1
|
|
Grupa: Zarejestrowani Postów: 24 Pomógł: 0 Dołączył: 4.07.2019 Ostrzeżenie: (0%) |
Witajcie, mam pewną zagwozdkę, z którą nie mogę sobie poradzić.
Posiadam dwie tabele w MySQL. Pierwsza zawiera dane o produktach - nazwa, opisy, itp. Druga zawiera stany magazynowe i ceny. Obie posiadają kolumnę SKU - czyli identyfikator produktu. Mam do przygotowania dajmy na to stronę z widokiem produktów z danej kategorii. Chcę zatem, aby było zawarte w niej stronnicowanie oraz żeby wyświetlały się tylko produkty, które mają stan magazynowy i cenę większą od 0. Na jednej stronie ma znajdować się 28 produktów. Na początku zrobiłem to w taki sposób, że używałem zwykłego SELECTA do wybrania produktów z kategorii, wrzucałem pętle i w niej wykonywałem kolejne zapytanie o stan magazynowy i cenę. Ale robi się wtedy straszny nieład ze względu na liczbę produktów na stronie. Oczywiście udało mi się to rozwiązać PHPem, ale chciałbym całość zawrzeć w jednym pytaniu SQL. Czyli do tej pory miałem coś takiego:
Tutaj wjeżdżała pętla While, która przechodzi przez każdy produkt. Następnie sprawdzanie stanów i cen.
Czyli chciałbym te 2 pytania z dwóch różnych tabel zawrzeć w jedno zapytanie. Próbowałem w taki sposób, ale to chyba nie ma prawa działać
|
|
|
11.08.2020, 09:17:58
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 707 Pomógł: 266 Dołączył: 3.07.2012 Skąd: Poznań Ostrzeżenie: (0%) |
ORM-y zwykle robią to tak, że wywołują jedno zapytanie do pobrania identyfikatorów, a potem drugie z WHERE foo_id IN (1, 2, 3, 4) itp.
Druga możliwość to zwykły JOIN. |
|
|
11.08.2020, 09:28:07
Post
#3
|
|
Grupa: Zarejestrowani Postów: 6 761 Pomógł: 1822 Dołączył: 11.03.2014 Ostrzeżenie: (0%) |
Próbowałem w taki sposób, ale to chyba nie ma prawa działać
A dlaczego nie? Jest tu złączenie w WHERE. Sprawdzałeś czy wynik jest taki jak oczekujesz? -------------------- |
|
|
20.08.2020, 12:53:18
Post
#4
|
|
Grupa: Zarejestrowani Postów: 24 Pomógł: 0 Dołączył: 4.07.2019 Ostrzeżenie: (0%) |
Problem rozwiązany za pomocą WHERE IN Dziękuję za pomoc.
|
|
|
Wersja Lo-Fi | Aktualny czas: 26.04.2024 - 07:57 |