Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> INNER JOIN domyślnym złączeniem?
-lukasamd-
post 8.02.2011, 10:41:29
Post #1





Goście







Witam,
mam pytanie odnośnie złączeń, w których nie podajemy jawnie sposobu - czy jest to wtedy domyślnie INNER JOIN?

Ostatnio miałem problem, tzn. na zapytanie:
  1. SELECT u.username, f.*
  2. FROM users u, FIELDS f
  3. WHERE f.field_name = 'Testowe'
  4. AND f.uid = u.user_id
  5. LIMIT 1025, 25

nie było żadnych wyników, chociaż po ręcznym sprawdzeniu okazywało się, że niby wszystko jest w porządku i wyniki jak najbardziej powinny być.
Dotarło jednak do mnie, że są tam zapisane uid userów, którzy już faktycznie nie istnieją i nie ma ich w tabeli users - w wyniku tego LIMIT 1025 tracił sens, bo wszystko było "przesunięte w dół".
Prawdziwe wyniki dla tej wartości pojawiły się dopiero po ustawieniu LIMIT na 930.
Tymczasem spróbowałem tak:

  1. SELECT u.username, f.*
  2. FROM users u
  3. LEFT JOIN FIELDS f ON (f.uid = u.user_id)
  4. WHERE f.field_name = 'Testowe'
  5. LIMIT 1025, 25


No i jak ręką odjął!
Z tego wnioskuję, że INNER JOIN jest domyślnym typem łączenia jeżeli nie podamy innego, tak jak w pierwszym przypadku.
No chyba że jest jeszcze jakiś "smaczek" o którym nie wiem, a z chęcią się dowiem aby rozwiać wątpliwości smile.gif

Ten post edytował lukasamd 8.02.2011, 10:42:30
Go to the top of the page
+Quote Post

Posty w temacie
- lukasamd   INNER JOIN domyślnym złączeniem?   8.02.2011, 10:41:29
- - nospor   Nie chodzi o jakies domyslne złączenie ale o warun...   8.02.2011, 10:48:55
- - lukasamd   OMG... moja "spostrzegawczość" naprawdę ...   8.02.2011, 10:57:57


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: 26.06.2025 - 03:10