![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 733 Pomógł: 4 Dołączył: 11.11.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam wszystkich.
Potrzebowałem pobrać w jednym zapytaniu dane z dwóch tabel, więc zrobiłem to UNION i tutaj pojawił się problem, ponieważ wrzucając do bazy zapytanie:
gdzie za $id przyjąłem wartość 3 to otrzymałem coś takiego: Kod id oferta kolor 1 3 10 2 3 11 1 3 berta.png 2 3 berta1.png problem w tym, że berta.png i berta1.png nie są kolorem tak jak wskazuje tutaj tabela tylko są zdjęciem, więc przy odczytywaniu kodem:
pod zmienną zdjecie otrzymuje Notice, a pod $wierszusiek['kolor'] otrzymuje te wszystkie dane, a ja tego tak nie chcę. W $wierszusiek['zdjecie'] chciałbym rekordy zdjęć, a w $wierszusiek['kolor'] same kolory, czyli moim mniemaniem w bazie po jakimś zapytaniu chciałbym otrzymać taki wynik: Kod id oferta kolor 1 3 10 2 3 11 Kod id oferta zdjecie 1 3 berta.png 2 3 berta1.png Tylko problem jest w tym, że nie wiem jakim JEDNYM zapytaniem takie coś otrzymać. Proszę o pomoc. Z góry dziękuje ![]() JOIN zadziałał: Kod SELECT k.id, k.oferta, k.kolor, z.oferta, z.zdjecie FROM kolory k, zdjecia z WHERE z.id=k.id AND z.oferta = '$id' To powyżej to jakiś pseudo JOIN. działa, lecz słyszałem, że ten iloczyn kartezjański może wykończyć bazę danych. Jak miałby wyglądać taki JOIN? Rozwiązanie: Kod $zapytkon = mysql_query("SELECT kolory.kolor, kolory.id, zdjecia.id, kolory.oferta, zdjecia.oferta, zdjecia.domyslne, zdjecia.zdjecie FROM kolory INNER JOIN zdjecia ON kolory.id = zdjecia.id WHERE kolory.oferta = '$id' AND zdjecia.oferta = '$id'"); -------------------- |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 10.07.2025 - 07:09 |