![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 24 Pomógł: 0 Dołączył: 19.07.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam
Mam dużą bazę danych ze zdjęciami, i słowami kluczowymi. W uproszczeniu baza składa się z 2 tabel: zdjęcia z polami id_zdjecia i ścieżką do zdjęcia oraz tabelę słowa kluczowe, gdzie mam pola id, id_zdjecia, slowo. I teraz chciałbym jednym zapytaniem sql znaleźć zdjęcia które mają przypisane np 2 słowa kluczowe np: jeśli wpiszę "piłka nożna", chcę znaleźć tylko te identyfikatory zdjęć które mają słowo PIŁKA i NOŻNA. Wszelkie moje próby kończą się 2 wyjściami. Albo dostaję wynik w postaci identyfikatorów zdjęć zawierających słowo piłka lub słowo nożna, albo pusty zbiór danych. Oczywiście mam w bazie słów kluczowych takie wpisy, gdzie do jednego identyfikatora zdjęcia przypisane są oba te słowa. Robię to mniejwiecej tak: OPCJA 1:
OPCJA 2:
Proszę o jakąś podpowiedź, bo stanąłem w miejscu, w którym nie spodziewałem się w ogóle problemu... |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 24 Pomógł: 0 Dołączył: 19.07.2007 Ostrzeżenie: (0%) ![]() ![]() |
Dokładnych danych nie znam, ale wygląda to mniej więcej tak że najczęstsze słowo kluczowe występuje w bazie ponad 30tys razy, a zdjęć jest tylko ok 26 tysięcy. Może to dać Ci jakieś pojecie ile tam jest "syfu" (IMG:style_emoticons/default/winksmiley.jpg) Wszystkich słów razem jest ok 600tys i to już po odfiltrowaniu wielu rzeczy, bo zaczynałem z pułapu 750tys słów.
I jeszcze jedno pytanie, bo napewno zostaję przy konstrukcji z CROSS JOIN. Gdy chcę 3 słowa: WARSZAWA, STADION, KONFERENCJA to robię tak i działa:
Gdybym chciał wszystkie zdjęcia gdzie jest słowo kluczowe WARSZAWA, STADION ale nie ma słowa KONFERENCJA to spłodziłem coś takiego, ale to tez nie chce współpracować i nie uwzględnia 3 warunku:
WHY, OH WHY? (IMG:style_emoticons/default/winksmiley.jpg) Ten post edytował qchar 3.01.2010, 23:28:48 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 3.10.2025 - 11:15 |