![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 96 Pomógł: 0 Dołączył: 11.09.2006 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Witam, mam takie pytane, czy jest możliwe w jednym zapytaniu
wyciągnąć szukane słowo ale z wielu tabel? tzn. mam tabele odpowiadającą za newsy, inną odpowiadającą za blog, i jeszcze inne tabele które należą do różnych działów. Bardzo popularne jest w opcjach wyszukiwania na serwisach 'szukaj wszędzie'. Te tabele mają generalnie podobne pola ale różnią się nazwami pól i tabel. Czy jest możliwe w jednym zapytaniu przeszukać dokładnie 5 tabel odpowiadających za kolejne działy w serwisie? I pogrupować te dane wynikowe jakoś (np na działy). dokładnie chcę uzyskać id wpisu, nazwę wpisu , datę i krótki opis, a szukam po specjalnej komórce 'sarche' która jest typu text i ma ustawiony na komórce fulltext. Szukam oczywiście jakiegoś słowa , wyrażenia wpisanego przez kogoś. Ma ktoś jakiś pomysł jak to zrobić? I kolejne pytanie , czy takie rozwiązanie z jednym zapytaniem, do wielu tabel jest optymalne? Czy lepiej każdą tabele odpytywać z osobna potem te dane jakoś połączyć i wyświetlić wynik? Które rozwiązanie jest według was leprze? Dzięki i pozdrawiam.... |
|
|
![]() |
![]() ![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 96 Pomógł: 0 Dołączył: 11.09.2006 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
hmm,
rozumie nazwy działów i właśnie dlatego uważam że się trochę zapędziłeś. Napisałeś je nie w tej kolejności.... Co do problemu, u mnie każdy dział to osobna tabela, idąc tym tropem chyba nie potrzebuje zapisu ''nazwa działu 1' AS `dzial`, wiec go usunąłem , wtedy MySQL krzyczał że nie poprawna składnia z GROUP BY i ORDER BY, więc usunąłem to, i zadziałało, ale dane są nie poprawne i przekłamane, pokazuje mi w komórkach takie rzeczy które wiem że są w zupełnie innych komórkach. Czy można za pomocą UNION jakoś te dane pogrupować i odpowiednio po sortować? I jak mogę rozróżnić że dane pochodzą z tabeli newsów a nie innej ? Z tego co widzę wyniki są nie rozróżnialne. Oto moje zapytanie na 3 tabelach:
Jak usuniesz łączenie do tabeli comments i ostatni wpis count() oraz ORDER BY i GROUP BY to to zapytanie z UNION zadziała. Z kolei jak usuniesz UNION ALL to uzyskasz 3 zapytania SELECT zgrupowane i posortowane, (grupuje) bo do każdego rekordu muszę jeszcze zaczytać ilość komentarzy. Ten post edytował Sokrates 19.11.2008, 00:27:13 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 16.10.2025 - 21:26 |