Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> zmniejszenie wynikow do jednej kolumny
voytass
post
Post #1





Grupa: Zarejestrowani
Postów: 113
Pomógł: 0
Dołączył: 15.04.2002
Skąd: Warszawa

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


wynik zapytania wyglada tak:

Cytat
aid      bid
19  1
29  1
2  1
1  11
1  22
1  23


czy mozliwe jest uzytkanie (po zapytaniu sql) jednej kolumny tylko z tymi wartosciami > 1, czyli:

Cytat
abid
19 
29 

11
22
23
Go to the top of the page
+Quote Post
dr_bonzo
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

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


  1. SELECT aid
  2. FROM tabela zamiast
  3. SELECT *
  4. FROM tabela
Go to the top of the page
+Quote Post
Vertical
post
Post #3





Grupa: Zarejestrowani
Postów: 848
Pomógł: 0
Dołączył: 7.07.2004
Skąd: Wrocław

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


Jeżeli Twoja tabela wygląda tak, jak przedstawiłeś, da się to zrobić w ten sposób:
  1. SELECT (aid * bid) AS abid
  2. FROM tabela;

Ten sposób nie będzie jednak działać jeżeli będziesz miał w tym samym wierszu dwie wartości różne niż 1
Go to the top of the page
+Quote Post
dr_bonzo
post
Post #4





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

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


Lol ale jestem slepy, myslalem ze chodzi o wybor tylko jednej kolumny.

@Vertical: sprytny sposob, ale niestety moze (jak napisales) nie zawsze dzialac, konieczny jest specyficzny uklad danych w bazie

Nie wiem czy da sie to w SQLu zrobic ale zawze mozesz polaczyc wyniki w php:
  1. SELECT aid
  2. FROM tabela WHERE aid > 1

  1. SELECT bid
  2. FROM tabela WHERE bid > 1


a potem array_merge()
Go to the top of the page
+Quote Post
popbart
post
Post #5





Grupa: Zarejestrowani
Postów: 255
Pomógł: 0
Dołączył: 22.04.2004
Skąd: Żoliborz

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


Bardzo proste jeżeli masz mysql'a 4.1.x (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
  1. SELECT *
  2. FROM ((SELECT aid AS pole
  3. FROM tabela) UNION ALL
  4. (SELECT bid AS pole
  5. FROM tabela)) AS temp
  6. WHERE temp.pole>1

Pzdr.
Go to the top of the page
+Quote Post
voytass
post
Post #6





Grupa: Zarejestrowani
Postów: 113
Pomógł: 0
Dołączył: 15.04.2002
Skąd: Warszawa

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


no to chyba pozostane przy swoich dwoch zapytaniach (tak samo jak pomys dr_bonzo):
- niestety nie zawsze sa jedynki
- baza mysql < 4
dzieki za pomysly, mi juz 'czacha dymi' (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) ide na papierosa.
Go to the top of the page
+Quote Post
SongoQ
post
Post #7





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

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


Mozesz enentualnie jesli tam wystepuje null zamieniac na 1.
Go to the top of the page
+Quote Post
voytass
post
Post #8





Grupa: Zarejestrowani
Postów: 113
Pomógł: 0
Dołączył: 15.04.2002
Skąd: Warszawa

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


Cytat(SongoQ @ 2005-06-26 16:19:24)
Mozesz enentualnie jesli tam wystepuje null zamieniac na 1.

NULL w ogole nie wystepuje.
wystepuja 1,2,3 itd. bo to jest id uzytkownika
Go to the top of the page
+Quote Post
FiDO
post
Post #9





Grupa: Przyjaciele php.pl
Postów: 1 717
Pomógł: 0
Dołączył: 12.06.2002
Skąd: Wolsztyn..... Studia: Zielona Góra

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


  1. SELECT GREATEST(aid, bid)
  2. FROM tabela WHERE aid > 1 OR bid > 1
Go to the top of the page
+Quote Post
popbart
post
Post #10





Grupa: Zarejestrowani
Postów: 255
Pomógł: 0
Dołączył: 22.04.2004
Skąd: Żoliborz

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


@Fido czy jesteś pewien że to zastąpi UNION ?
Go to the top of the page
+Quote Post
FiDO
post
Post #11





Grupa: Przyjaciele php.pl
Postów: 1 717
Pomógł: 0
Dołączył: 12.06.2002
Skąd: Wolsztyn..... Studia: Zielona Góra

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


A czy gdzies cos takiego sugerowalem? (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) (choc w tym przypadku wyniki powinny byc chyba takie same)
W kazdym razie powinno to byc rozwiazaniem dla tego problemu. Wyciagamy wszystkie wiersze, ktore maja jedna z wartosci >1 i wybieramy ta wieksza.. wydaje mi sie, ze to autor chcial osiagnac.
Go to the top of the page
+Quote Post
popbart
post
Post #12





Grupa: Zarejestrowani
Postów: 255
Pomógł: 0
Dołączył: 22.04.2004
Skąd: Żoliborz

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


A mi się wydawało że chodzi o jedną kolumnę ze wszystkimi wartościami z kolumn aid i bid większych od 1 .
Go to the top of the page
+Quote Post
FiDO
post
Post #13





Grupa: Przyjaciele php.pl
Postów: 1 717
Pomógł: 0
Dołączył: 12.06.2002
Skąd: Wolsztyn..... Studia: Zielona Góra

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


No to juz by autor musial stwierdzic.. wtedy w kazdym razie juz union bylby konieczny, ale wydaje mi sie ze moznaby to zrobic prosciej:
  1. SELECT aid pole
  2. FROM tabela WHERE aid > 1
  3. UNION
  4. SELECT bid pole
  5. FROM tabela WHERE bid > 1


Ten post edytował FiDO 27.06.2005, 18:47:40
Go to the top of the page
+Quote Post
voytass
post
Post #14





Grupa: Zarejestrowani
Postów: 113
Pomógł: 0
Dołączył: 15.04.2002
Skąd: Warszawa

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


wyniki z ta jedynka, nieszczesliwie wam zasugerowaly ze mozna byc tylko > 1 ale niestety nie jest tak

mozebyc tak:
Cytat
aid      bid
19      1
29      1
2        1
1        11
1        22
1        23


ale i tak:
Cytat
aid      bid
19      125
29      125
2        125
125        11
125        22
125        23


moze byc roznie bo jak pisalem powyzsze wyniki dotycza id-kow userow

dodam, ze te powyzsze sa wynikiem zapytania i mozliwe ze to zapytanie trzeba przebudowac by dawalo wynik w jednej klumnie

--------------------
tabela wyglada tak (przykladowo)
Cytat
aid      bid
19      7
29      7
2        7
7        11
7        22
7        23


i caly ten watek tyczy sie tego by wybrac z tabeli te nr idkow, ktore przypadaja dla 7

czyli chcialbym otrzymac (za jednym zapytaniem)

Cytat
ids
19
29
2
11
22
23


Ten post edytował voytass 28.06.2005, 09:49:43
Go to the top of the page
+Quote Post
brachu
post
Post #15





Grupa: Zarejestrowani
Postów: 92
Pomógł: 0
Dołączył: 13.04.2005

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


gdybys mial MySQL-a 4.x to moglbys skorzystac z:
  1. SELECT aid
  2. FROM tabela WHERE bid=1
  3. UNION
  4. SELECT bid
  5. FROM tabela WHERE aid=1

no ale ze masz MySQL-a<4 to raczej musisz zrobic to na dwoch zapytaniach (IMG:http://forum.php.pl/style_emoticons/default/sadsmiley02.gif)
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: 24.12.2025 - 18:08