![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 102 Pomógł: 10 Dołączył: 25.12.2005 Skąd: Ruda Śląska Ostrzeżenie: (0%) ![]() ![]() |
Po długim rozbracie z pisaniem stron, na nowo zacząłem i natrafiłem na problem z którym nie umiem sobie poradzić
Mam 3 tabele tracki, sety, cd (ich budowa nie jest tu zbytnio potrzebna), na stronę główną chciałbym dać np 10 najnowszych aktualności z tych 3 tabel sortowane wg daty. Jakim poleceniem mogę pobrać naraz z wsyzstkich 3 tabel sortując po dacie W ostateczności mogę dodać kolejną tabelę i tam zapisywać kolejność dodawania elementów do tych tabel ale chciałbym tego uniknąć Ten post edytował remik09 1.11.2009, 10:35:35 -------------------- |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 140 Pomógł: 22 Dołączył: 1.05.2009 Skąd: Będzin Ostrzeżenie: (0%) ![]() ![]() |
Pobierasz dane z tabeli i sortujesz datami a potem wyświetlasz. (order by - sortowanie)
Ten post edytował Zosiek 1.11.2009, 11:47:46 -------------------- Pamiętaj ja staram się pomóc tobie, a ty może kiedyś pomożesz mnie. :D
Pomogłem Ci?? Jeśli tak to jestem z tego dumny. Jeśli nie to postaram się bardziej - nikt nie jest doskonały :P Kliknij przycisk Pomógł pod postem, który Ci pomógł. |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 102 Pomógł: 10 Dołączył: 25.12.2005 Skąd: Ruda Śląska Ostrzeżenie: (0%) ![]() ![]() |
mógłbyś napisać kod tego polecenia bo coś czuje, że to taka strasznie lakoniczna odpowiedź, takie przekształcenie mojego pytania tylko
-------------------- |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 221 Pomógł: 14 Dołączył: 11.03.2009 Skąd: Lubaczów Ostrzeżenie: (0%) ![]() ![]() |
moze tak :
[SQL] pobierz, plaintext
to zapytanie powinno Ci wybrac wszystko z tych trzech tabel, posegregowac po dacie ostatnio dodanych rekordow i pokazac tylko 10 wynikow Pozdrawiam Ten post edytował InosU31 1.11.2009, 19:33:21 |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 102 Pomógł: 10 Dołączył: 25.12.2005 Skąd: Ruda Śląska Ostrzeżenie: (0%) ![]() ![]() |
w phpmyadminie otrzymałem coś takeigo
Kod zapytanie SQL: SELECT * FROM `tracki` , `sets` , `cds` ORDER BY `data` DESC LIMIT 10 MySQL zwrócił komunikat: #1052 - Kolumna: 'data' w order clause jest dwuznaczna dodam, że w każdej tabeli istnieje pole `data` i jest tego samego typu Ten post edytował remik09 1.11.2009, 21:33:32 -------------------- |
|
|
![]()
Post
#6
|
|
![]() Newsman Grupa: Moderatorzy Postów: 4 005 Pomógł: 548 Dołączył: 7.04.2008 Skąd: Trzebinia/Kraków ![]() |
używaj aliasów. tzn: tracki.data as tdata, sets.data as sdata itd.
-------------------- |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 102 Pomógł: 10 Dołączył: 25.12.2005 Skąd: Ruda Śląska Ostrzeżenie: (0%) ![]() ![]() |
nie bardzo rozumiem w jakim sensie ma to pomóc, jeśli dobrze zrozumiałem działanie aliasów
a w ostateczności da się to pobrać 3 zapytaniami a potem załadować do 3 tablic array, polaczyc je i tam posegregowac je wg daty ? -------------------- |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 1 Pomógł: 0 Dołączył: 1.11.2009 Ostrzeżenie: (0%) ![]() ![]() |
używaj aliasów. tzn: tracki.data as tdata, sets.data as sdata itd. a dokładnie: SELECT * FROM tracki as t, sety as s, cd as c ORDER BY c.data DESC LIMIT 10 chyba, że data z tracka jest ważniejsza niż data z cd ps. jak widać zawartość tabel jest istotna, skąd piszący wcześniej miał wiedzieć, ze w każdej tabeli masz pole "data" -------------------- Moje strony w PHP:
Darmowy katalog stron. Testy DNA na ojcostwo,środki na potencję. Dowcipy,SMSy, wierszyki. |
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 102 Pomógł: 10 Dołączył: 25.12.2005 Skąd: Ruda Śląska Ostrzeżenie: (0%) ![]() ![]() |
przecież napisałem o tym :|
aliasy średnio pomogły ale pomogło polecenie UNION Kod SELECT data, wykonawca FROM `cds` UNION ALL SELECT data, wykonawca FROM `tracki` jednak wystąpił pewien problem: Kod SELECT data, nazwa, wykonawca, typ, data, gatunek, link, id FROM `cds` UNION ALL SELECT data, nazwa, wykonawca, typ, data, gatunek, link, id FROM `tracki` UNION ALL SELECT data, nazwa, wykonawca, typ, data, gatunek, link, id FROM `sets` LIMIT 10 pobiera dobrze z 2 tabel ale trzecią mi już pomija -------------------- |
|
|
![]()
Post
#10
|
|
![]() Newsman Grupa: Moderatorzy Postów: 4 005 Pomógł: 548 Dołączył: 7.04.2008 Skąd: Trzebinia/Kraków ![]() |
chłopie jak sie utrudniasz... robisz jakieś zapytanie nie wiem skąd a możesz mieć bardziej optymalne używając aliasów...
-------------------- |
|
|
![]()
Post
#11
|
|
![]() Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
Kod SELECT data, nazwa, wykonawca, typ, data, gatunek, link, id FROM `cds` UNION ALL SELECT data, nazwa, wykonawca, typ, data, gatunek, link, id FROM `tracki` UNION ALL SELECT data, nazwa, wykonawca, typ, data, gatunek, link, id FROM `sets` LIMIT 10 pobiera dobrze z 2 tabel ale trzecią mi już pomija A tak?
|
|
|
![]()
Post
#12
|
|
![]() Grupa: Zarejestrowani Postów: 102 Pomógł: 10 Dołączył: 25.12.2005 Skąd: Ruda Śląska Ostrzeżenie: (0%) ![]() ![]() |
nie wiem czy do końca mój problem jest rozumiany, ja chcę uzyskać wszystkie rekordy z tych tabel jednym zapytaniem, żeby mozna było je posortować wg daty. Używając aliasów 2 tabele łączą mi się w jedną i każdy rekord ma np 2 razy id, 2 razy date itp., anie o to mi chodzi
id|data|wykonawca|gatunek --|-----|-------------|--------- 1 |2106|abcd |HC 2 |4627|dadzc |HC id|data|wykonawca|gatunek --|-----|-------------|--------- 1 |9136|czczc |HC 2 |4657|dadacz |HC takie coś mi wychodzi id|data|wykonawca|gatunek|id|data|wykonawca|gatunek --|-----|-------------|------------------------------------------- 1 |2106|abcd |HC |1|9136|czczc |HC 2 |4627|dadzc |HC |2|4657|dadacz |HC a ja chce otrzymać id|data|wykonawca|gatunek --|-----|-------------|--------- 1 |9136|czczc |HC 2 |4657|dadacz |HC 1|2106 |abcd |HC 2|4627 |daadzc |HC phpion, niestety wywala błąd od razu Ten post edytował remik09 2.11.2009, 15:09:26 -------------------- |
|
|
![]()
Post
#13
|
|
![]() Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
Dlatego tak się dzieje, bo ci twardziele każą Ci robić iloczyn kartezjański tabel, w wyniku którego dostaniesz zbiór każdy-z-każdym. Bazuj na przykładzie podanym przeze mnie - powinno działać tak, jak chcesz.
|
|
|
![]()
Post
#14
|
|
![]() Newsman Grupa: Moderatorzy Postów: 4 005 Pomógł: 548 Dołączył: 7.04.2008 Skąd: Trzebinia/Kraków ![]() |
pokaż struktury tabel... i powiedz jak powinny wyglądać dane wynikowe. bo tak to błądzimy po omacku.
-------------------- |
|
|
![]()
Post
#15
|
|
![]() Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
|
|
|
![]()
Post
#16
|
|
![]() Grupa: Zarejestrowani Postów: 102 Pomógł: 10 Dołączył: 25.12.2005 Skąd: Ruda Śląska Ostrzeżenie: (0%) ![]() ![]() |
jak już napisałem bo chyba nei zauważyłeś niestety wywala błąd
-------------------- |
|
|
![]()
Post
#17
|
|
![]() Newsman Grupa: Moderatorzy Postów: 4 005 Pomógł: 548 Dołączył: 7.04.2008 Skąd: Trzebinia/Kraków ![]() |
może tak? Ten post edytował piotrooo89 2.11.2009, 15:47:37 -------------------- |
|
|
![]()
Post
#18
|
|
![]() Grupa: Zarejestrowani Postów: 102 Pomógł: 10 Dołączył: 25.12.2005 Skąd: Ruda Śląska Ostrzeżenie: (0%) ![]() ![]() |
sory jednak to co wcześniej pisałem było dobre
Kod SELECT data, nazwa, wykonawca, typ, data, gatunek, link, id FROM `cds` UNION ALL SELECT data, nazwa, wykonawca, typ, data, gatunek, link, id FROM `sets` UNION ALL SELECT data, nazwa, wykonawca, typ, data, gatunek, link, id FROM `tracki` ORDER BY data LIMIT 10 jednak działa dobrze, jest pobieranie z 3 tabel @piotrooo89 - więc jeśli wyszło mi to co chciałem to chciałbym abyś mi pokazał kod z aliasami, który zrobi dokładnie to samo, bo się ich tak czepiłeś a ja w ogóle nie wiem jak je można tu wykorzystać. Dla mnei to jedyne polecenie, które może zrobić to co ja chciałem Ten post edytował remik09 2.11.2009, 15:50:32 -------------------- |
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.08.2025 - 20:22 |