Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [SQL]połączenie 2 zapytań
wpaski
post 1.09.2012, 11:17:14
Post #1





Grupa: Zarejestrowani
Postów: 206
Pomógł: 6
Dołączył: 25.12.2011

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


Jak można połączyć te 2 zapytania?

  1. $sql = "SELECT id_obiekt,id_cat,id_user,obiekty_nazwa_obiektu, obiekty_miejscowosc, obiekty_adres,
  2. obiekty_email, obiekty_telefon, obiekty_strona_www, obiekty_typ_obiektow, obiekty_cena, obiekty_opis,
  3. obiekty_cennik_i_rezerwacja, obiekty_promocje, obiekty_lokalizacja,data FROM(SELECT * FROM ".PREFIX."obiekty
  4. ORDER BY data DESC LIMIT $limit, $onpage) AS al ORDER BY RAND()";
  5.  
  6.  
  7. $sql_zdjecie = "SELECT ".PREFIX."obiekty.id_obiekt,id_cat,".PREFIX."obiekty.id_user,obiekty_nazwa_obiektu,
  8. obiekty_miejscowosc, obiekty_adres, obiekty_email, obiekty_telefon, obiekty_strona_www, obiekty_typ_obiektow,
  9. obiekty_cena, obiekty_opis, obiekty_cennik_i_rezerwacja, obiekty_promocje, obiekty_lokalizacja,data, min_zdjecie,
  10. max_zdjecie FROM ".PREFIX."obiekty INNER JOIN ".PREFIX."obiekty_galeria ON
  11. ".PREFIX."obiekty.id_obiekt = ".PREFIX."obiekty_galeria.id_obiekt where id_cat=$id_cat GROUP BY
  12. baza_jakas_obiekty_galeria.id_obiekt";


lub też jak zrobić, żeby gdy wykonuje taką instrukcję:
  1. while ($row = mysql_fetch_assoc($result)) {

i odwołuje się do 1 zapytania, gdy użyje 2 zapytanie w pętli while to pobiera tylko 1 rekord, może troche to zagmatwałem, ale proszę o pomoc





jeszcze probowałem tak:
  1. while ($row = mysql_fetch_assoc($result) AND $row2 = mysql_fetch_assoc($result2) ) {

ale nie działa, czy ten zapis jest poprawny czy nie można takiego stosować?

Ten post edytował wpaski 1.09.2012, 11:23:39
Go to the top of the page
+Quote Post
mmmmmmm
post 1.09.2012, 12:46:25
Post #2





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

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


Połączyć wyniki zapytań możesz stosując UNION (UNION ALL). Ale oba wyniki muszą mieć taką samą liczbę kolumn i tego samego typu.
A drugie zapytanie zwraca ci tylko jeden rekord bo masz tam GROUP BY. Nie wiem, czy wiesz ale tak skopane zapytanie przejdzie tylko na MySQL-u...
Go to the top of the page
+Quote Post
jaslanin
post 1.09.2012, 12:55:32
Post #3





Grupa: Zarejestrowani
Postów: 511
Pomógł: 143
Dołączył: 13.03.2010
Skąd: Jasło

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


1. Pierwsza rzecz jaka się narzuca to nieczytelny kod. Nikomu raczej nie będzie się chciało zadawać trudu pomocy Tobie, jeżeli będziesz przesyłał tak beznadziejnie nieczytelny kod. A wystarczyło by użyć np. http://www.dpriver.com/pp/sqlformat.htm
2. Wstawiłeś zapytania do tagów SQL, mimo to iż kodem SQL nie są. To jest zwykły kawałek kodu PHP z wrzuconymi dwoma zapytaniami SQL.
3. Nie jest poprawny. AND to operacja logiczna.
4. Te dwa zapytania można "połączyć" na nieskończenie wiele sposobów, które dadzą nieskończenie wiele różnych wyników. Tobie chodzi prawdopodobnie o jeden bardzo konkretny zbiór wyników które to NOWE zapytania podobne do tych dwóch ma robić.

Oczywiście, żeby było łatwiej odp. na Twoje pytanie, nie piszesz co chcesz osiągnąć. Jakie wyniki mają być zwracane. Nie podajesz zrzutu przykładowej bazy danych i wyniku jaki chciałbyś osiągnąć. Wyjaśniając przy tym logikę, zasady które generują takie, a nie inne wyniki na bazie posiadanych danych.

Ten post edytował jaslanin 1.09.2012, 12:56:41


--------------------
Good luck and happy PHP'ing
Go to the top of the page
+Quote Post
wpaski
post 1.09.2012, 17:18:14
Post #4





Grupa: Zarejestrowani
Postów: 206
Pomógł: 6
Dołączył: 25.12.2011

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


dziękuje za odpowiedzi, nie wiedziałem o takim narzędziu które tak znacznie zwiększa czytelność kodu na forum, ale już wiem.
Z zapytaniami sobie już poradziłem, jednak

Cytat
Nie wiem, czy wiesz ale tak skopane zapytanie przejdzie tylko na MySQL-u


Co w nim jest tak bardzo skopanego? Dlaczego na MySQL-u przejdzie a na innych rodzajach baz danych nie?

Ten post edytował wpaski 1.09.2012, 17:18:58
Go to the top of the page
+Quote Post
mmmmmmm
post 1.09.2012, 21:59:07
Post #5





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

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


Poczytaj co ma "specyficznego" MySQL z grupowaniem, czego inne bazy nie mają. I zastanów się czemu nie mają...
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 12.06.2025 - 21:05