Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Złączenie trzech tabel, Problem
Diwi
post 15.09.2006, 17:26:37
Post #1





Grupa: Zarejestrowani
Postów: 245
Pomógł: 4
Dołączył: 22.01.2005

Ostrzeżenie: (0%)
-----


Witam,
Natrafiłem na pewny problem podczas wyciągania danych z bazy danych. Tak więc mam trzy tabele (skrypt dodawarki do katalogów winksmiley.jpg):

sites z kolumnami: site_id, user_id, site_url, site_anchors, site_descriptions, site_authoremail, site_categories, site_subcategories

catalogs: catalog_id, catalog_url, accepted, typ, pagerank

reports: report_id, site_id, added_catalog_id, report_text, report_type

I teraz mamy np. jedną stronę dodaną do sites z ID 1 (reszta jest akurat nie ważna przy tym co próbuję rozwiązać), do tego mamy trzy katalogi stron o ID: 1,2,3

Teraz jeśli w reports widnieje wiersz gdzie site_id=1 i np. added_catalog_id=2 to znaczy że strona o ID 1 została dodana do katalogu o ID 2, teraz zakładamy że w report widnieją trzy wiersze o site_id=1 i added_catalog_id kolejno od 1 do 3 co oznacza że strona została dodana do trzech katalogów.

Teraz chciałbym wyciągnąć do jakich katalogów została dodana strona więc zrobiłem zapytanie:

  1. SELECT s.*, c.*, r.* FROM sites s, catalogs c, reports r WHERE r.site_id='1' AND c.catalog_id IN ( r.added_catalog_id ) AND s.site_id='1


Tutaj wszystko jest spoko i otrzymuje 3 katalogi, problem zaczyna się gdy chce wyciągnąć do jakich katalogów nie została dodana (zakładamy że w bazie jest razem około 800 katalogów) tak więc takie zapytanie:


  1. SELECT s.*, c.*, r.* FROM sites s, catalogs c, reports r WHERE r.site_id='1' AND c.catalog_id NOT IN ( r.added_catalog_id ) AND s.site_id='1


Powinno wyciągnąć 797 rekordów ale nie ono wyciąga koło 2300 ohmy.gif

Czy ktoś mógłby mnie naprowadzić jak rozwiązać ten problem i aby wyciągał taką ilość katalogów jaką powinien (mogę spokojnie przebudować tabelę itp. winksmiley.jpg) ?

Pozdrawiam
Go to the top of the page
+Quote Post

Posty w temacie
- Diwi   Złączenie trzech tabel   15.09.2006, 17:26:37
- - Skobi   tak na szybko bez sprawdzania to powinno wygladać ...   16.09.2006, 10:08:29


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: 25.06.2025 - 23:54