Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL]połączenie dwóch zapytań z jednej tabeli
falent
post 6.07.2012, 23:50:54
Post #1





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 3.06.2012

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


Co robię źle? Czy jest w ogóle możliwe połączenie dwóch zapytań ale oba inaczej posortowane?



Kod
$a="SELECT * FROM application  (WHERE (sex='M' and c='1') ORDER BY  distance DESC , situation DESC, pref1 ASC) ";  
$b="(WHERE (sex='M' and d='1') ORDER BY  distance DESC , pref1 ASC) ";
        $result = mysql_query("".$a." AND ".$b)

Go to the top of the page
+Quote Post
lukesh
post 7.07.2012, 01:11:57
Post #2





Grupa: Zarejestrowani
Postów: 113
Pomógł: 14
Dołączył: 25.08.2006

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


To, co próbujesz zrobić, jest niemożliwe. Nie rozumiem, skąd w ogóle taki pomysł, żeby pisać tak dziwne zapytanie?


--------------------
Edumemo.pl - Nauka Języków Obcych
Go to the top of the page
+Quote Post
falent
post 7.07.2012, 01:38:38
Post #3





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 3.06.2012

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




Udało mi się zrobić coś takiego

  1. $resultF = mysql_query("SELECT FROM ap WHERE (sex='F' and pref1='1') GROUP BY situation DESC, distance DESC UNION ALL SELECT * FROM ap WHERE (sex='F' and pref2='1' and situation='') GROUP BY distance DESC UNION ALL SELECT * FROM ap WHERE (sex='F' and pref2='3' and situation='') GROUP BY distance DESC LIMIT 15 "
  2.  
  3. $resultM = mysql_query("SELECT FROM ap WHERE (sex='M' and pref1='1') GROUP BY situation DESC, distance DESC UNION ALL SELECT * FROM ap WHERE (sex='M' and pref2='1' and situation='') GROUP BY distance DESC UNION ALL SELECT * FROM ap WHERE (sex='M' and pref2='3' and situation='') GROUP BY distance DESC LIMIT 10 "


Czy da się to połączyć do jednego zapytania i wyłączyć przed wszystko

  1. SELECT DISTINCT "nr" FROM "ap"


Nie mogą mi się powtarzać numery (nr)
Go to the top of the page
+Quote Post
lukesh
post 7.07.2012, 22:53:10
Post #4





Grupa: Zarejestrowani
Postów: 113
Pomógł: 14
Dołączył: 25.08.2006

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


Połączyć możesz dwie tabele razem ze sobą korzystając z JOIN. Z tego co widzę, to Ty nie chcesz łączyć dwóch tabel, tylko mieć wszystkie wyniki w jednej zmiennej. Dlaczego po prostu nie wykonasz jednego zapytania, żeby pobrać wszystkie te dane? Z tego co widzę, to oba zapytania są niemal takie same. Jedyna różnica to płeć.
Zamiast:

  1. sex='F'


Możesz po prostu dać:

  1. (sex='F' OR sex='M')


Potem w ogóle pozbądź się drugiego zapytania.

Tak chyba będzie najprościej...


--------------------
Edumemo.pl - Nauka Języków Obcych
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: 19.07.2025 - 19:53