Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> zmniejszenie wynikow do jednej kolumny
voytass
post 26.06.2005, 10:56:05
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


--------------------
Wojtek@7; Wojtek@ogniwo.net; [Simple Forum - 100% - phpclasses.org]; MCP
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 14)
dr_bonzo
post 26.06.2005, 11:32:24
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


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post
Vertical
post 26.06.2005, 12:31:38
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 26.06.2005, 12:57:37
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()


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post
popbart
post 26.06.2005, 13:06:26
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 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.


--------------------
Visual Basic - kto by pomyślał :)
Go to the top of the page
+Quote Post
voytass
post 26.06.2005, 13:53:20
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' smile.gif ide na papierosa.


--------------------
Wojtek@7; Wojtek@ogniwo.net; [Simple Forum - 100% - phpclasses.org]; MCP
Go to the top of the page
+Quote Post
SongoQ
post 26.06.2005, 15:19:24
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 26.06.2005, 15:46:23
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


--------------------
Wojtek@7; Wojtek@ogniwo.net; [Simple Forum - 100% - phpclasses.org]; MCP
Go to the top of the page
+Quote Post
FiDO
post 26.06.2005, 17:58:19
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


--------------------
Brak czasu :/
Go to the top of the page
+Quote Post
popbart
post 27.06.2005, 16:29:55
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 ?


--------------------
Visual Basic - kto by pomyślał :)
Go to the top of the page
+Quote Post
FiDO
post 27.06.2005, 17:11:00
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? 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.


--------------------
Brak czasu :/
Go to the top of the page
+Quote Post
popbart
post 27.06.2005, 17:49:36
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 .


--------------------
Visual Basic - kto by pomyślał :)
Go to the top of the page
+Quote Post
FiDO
post 27.06.2005, 18:15:45
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


--------------------
Brak czasu :/
Go to the top of the page
+Quote Post
voytass
post 28.06.2005, 09:45:21
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


--------------------
Wojtek@7; Wojtek@ogniwo.net; [Simple Forum - 100% - phpclasses.org]; MCP
Go to the top of the page
+Quote Post
brachu
post 28.06.2005, 10:06:23
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 sadsmiley02.gif


--------------------
www.tanieprogramy.edu.pl
www.zamkor.pl
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: 24.06.2025 - 11:51