Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Kilka LEFT JOIN-ów do jednej tabeli?
Baki
post
Post #1





Grupa: Zarejestrowani
Postów: 32
Pomógł: 0
Dołączył: 19.04.2003

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


Witam

czy mozna zrobic cos takiego iz mam 2 tabele:
SPRAWY: id_sprawy, status1, status2, status3
STATUSY: id_statusu, opis_statusu

tabela statusy, jest slownikiem, ktory przechowuje opis statusow ktore moga sie pojawic w tabeli sprawy (nie rozbijalem tego na 3 rozne tabele bo za malo tego)

takie zapytanie nie dziala, czy ktos moze zaproponowac jak to powinno wygladac?
a chce wyciagnac, opis dla 3 statusow, dla wszystkich spraw

  1. SELECT id_sprawy, status1, status2, status3 FROM sprawy LEFT JOIN statusy ON sprawy.status1=statusy.id_statusu LEFT JOIN statusy ON sprawy.status2=statusy.id_statusu LEFT JOIN statusy ON sprawy.status3=statusy.id_statusu


dzieki, pozdrawiam
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
zebupl
post
Post #2





Grupa: Zarejestrowani
Postów: 26
Pomógł: 2
Dołączył: 7.10.2008

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


Baki to ja będę się czepiał Twojego schematu, dlatego bez urazu (IMG:http://forum.php.pl/style_emoticons/default/dry.gif) (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Tabela: SPRAWY: id_sprawy, status1, status2, status3

1. Co zrobisz jak do sprawy będziesz musiał dorzucić 20 innych statusów ? Dodasz 20 atrybutów? Totalnie bez sensu. Każda tabela powinna posiadać nie więcej niż 16 atrybutów. Druga sprawa jak przemawia za rozbiciem tego fakt, że z tego zapisu jasno wynika, że winna to być relacja n:m. Każda sprawa posiada m statusów i każdy status może posiadać n spraw.

Jak poczytasz o relacji n:m dla encji to zrozumiesz dlaczego poprzednicy pisali o dodatkowej tabeli, to jest oczywistość.

Mając 3 tabele wystarczy jeden left join

pozdrawiam
munky
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 10.10.2025 - 03:57