![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 495 Pomógł: 2 Dołączył: 5.02.2006 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Zapytanie pobiera z bazy danych wszystkie rekordy spełniające określone warunki. Każdy rekord ma swój indywidualny numer ID.
Przykłąd: Tabela: X Kolumny: X.id, X.nazwa Tabela: Y Kolumny Y.id, Y.id_x, Y.ilosc, Y.data W jaki sposób pobrać w jednym zapytaniu wszystkie rekordy z tabeli X, a zarazem dołączyć do każdego maksymalną ilosc z tabeli Y, oraz ogólną ilość rekordów przyporządkowanych z tabeli Y d tego rekordu? Mogę to zrobić na piechotę w dwóch zapytaniach, ale zależy mi na sortowaniu... Zastanawiam się, czy to w ogóle jest możliwe... -------------------- Programista Stron i Serwisów WWW oraz Aplikacji Internetowych
Specjalista ds. Pozycjonowania Aplikacji Internetowych Copywriter |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 407 Pomógł: 1 Dołączył: 4.03.2003 Skąd: warszawa Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 495 Pomógł: 2 Dołączył: 5.02.2006 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Coś w tym stylu... dzięki wielki
![]() Mam jednak jeszcze jedno pytanie. Czy istnieje możliwość, by podczas sortowania puste rekordy wędrowały na koniec? Powiedzmy, że sortujemy według pola kwota rosnąco lub malejąco i powinno być tak id kwota 1 12 2 13 4 2345 3 22345 10 12 42 A nie tak: 10 12 42 2 13 4 2345 3 22345 -------------------- Programista Stron i Serwisów WWW oraz Aplikacji Internetowych
Specjalista ds. Pozycjonowania Aplikacji Internetowych Copywriter |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 21 Pomógł: 0 Dołączył: 29.04.2007 Ostrzeżenie: (0%) ![]() ![]() |
Kod SELECT *, (SELECT SUM(ilosc) FROM Y WHERE Y.id_x = X.id) AS suma FROM X WHERE suma IS NOT NULL ORDER BY suma UNION SELECT *, suma FROM X WHERE suma IS NULL; mozna tez wywalic puste wyniki: Kod SELECT *, (SELECT SUM(ilosc) FROM Y WHERE Y.id_x = X.id) AS suma FROM X WHERE suma IS NOT NULL ORDER BY suma;
Ten post edytował href 30.04.2007, 09:46:56 |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 495 Pomógł: 2 Dołączył: 5.02.2006 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Nad powyższym zapytaniem siedzę już od kilku godzin. Dane pobierane są w sposób jak najbardziej poprawny. Problemem jest jedynie sortiwanie. W momencie kiedy nie ma drugiego zapytania i UNION dane sortują się poprawnie według pola "maksymalna". W momencie kiedy pojawia się drugie zapytanie coś jest nie tak. Dane są pobierane, ale nie są sortowane. W całym zapytaniu dane z pierwszej jego części pownny się sortować według pola. Nie sortują się. Co jest nie tak? Już dostaję mętliku w gowie. Pierwsza część zostawiona sama jest ok sortuje się pięknie. Kiedy dorzucić UNION i resztę coś się wali, jakby blokowane było sortowanie w obrębie pierwszego zapytania. Co z tym zrobić? Ten post edytował The Night Shadow 30.04.2007, 17:49:54 -------------------- Programista Stron i Serwisów WWW oraz Aplikacji Internetowych
Specjalista ds. Pozycjonowania Aplikacji Internetowych Copywriter |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 1 033 Pomógł: 125 Dołączył: 17.09.2005 Skąd: Żywiec Ostrzeżenie: (0%) ![]() ![]() |
http://dev.mysql.com/doc/refman/5.0/en/union.html - pisze tam co nieco o ORDER BY
-------------------- "Sumienie mam czyste, bo nieużywane."
|
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 495 Pomógł: 2 Dołączył: 5.02.2006 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
LIMIT dodany do każdego zapytania indywidualnie i działa bezbłędnie... jednak tak na chłopski rozum jest to bezsensowne utrudnienie...
dzięki za pomoc! ![]() -------------------- Programista Stron i Serwisów WWW oraz Aplikacji Internetowych
Specjalista ds. Pozycjonowania Aplikacji Internetowych Copywriter |
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.08.2025 - 05:32 |