JOIN do siebie samego

0

Witam,

Czy taki JOIN , ktory dolaczy do kazdego wiersza firme z ID 999 ma sens? Czy to jest blad? Generlanie to dziala, i do kazdego wiersza jest dolaczana firma z warunku. Tylko zastanawiam sie czy to kiedys nie przysporzy mi problemow z tym SQL zapytaniem? Potrzebuje znac dane firmy, zadna z tabel z tego zapytania nie posiada company ID. Chociaz ono jest znane, bo jest przechowywane na serwerze w sesjii.

....
JOIN company c
  ON c.id = c.id
WHERE c.id = 999
...
1

o_O" Ja chyba już w ogóle nie znam się na SQLu bo bo skoro c.id jest zawsze równe 999 to reszta kodu jest równoważna

JOIN company c
ON 999 = 999

?

OK, czyli to jest podpowiednik:

JOIN company c
  ON c.id = 999
0

Pokaż więcej tego zapytania. Bo przedstawiony fragment jest bez sensu.

0

Błędu nie ma, czasem to ma sens ale w tym przypadku jest potencjalnie duża redundancja danych. Nie lepiej pobrać dane firmy 999 raz i zapamiętać po stronie klienta?

Możesz uprościć do:

JOIN company c
  ON c.id = 999
1
obscurity napisał(a):

No wiadomo że pomieszał ale z treści wiadomo o co chodzi.

To o co tu chodzi?

JOIN company c
ON c.id = c.id
0

Coś takiego chcesz zrobić?

SELECT * FROM companies
  JOIN companies c
  ON companies.first_id = c.second_id;
1

Jak masz tylko jeden wiersz dojoinować to ja bym po prostu tylko jego wyjął z tabeli.

JOIN 
(SELECT * company c
WHERE c.id = 999) moja_firma

A co do sensowności to nie wiem w jakiem przypadku miałoby to sens, ja bym po prostu wyciągnął dane firmy w osobnym selectcie.

1 użytkowników online, w tym zalogowanych: 0, gości: 1