Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySql] JOIN a WHERE
Petre
post
Post #1





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 12.05.2012

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


Witajcie

pytam wujka google, ale nie daje mi jednoznacznej odpowiedzi.

Jaka jest różnica między np:

  1. SELECT *
  2. FROM Orders
  3. LEFT JOIN OrderLines ON OrderLines.OrderID=Orders.ID
  4. WHERE Orders.ID = 12345



  1. SELECT *
  2. FROM Orders
  3. LEFT JOIN OrderLines ON OrderLines.OrderID=Orders.ID AND Orders.ID=12345


dokładnie rzecz ujmując chodzi mi o zastosowanie WHERE oraz AND za ON. Która wersja jest poprawniejsza i bardziej wydajna w przypadku większej ilości połączeń?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Petre
post
Post #2





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 12.05.2012

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


tak tak .

Chodzi mi o taki przypadek :

  1. SELECT *
  2. FROM Orders
  3. JOIN OrderLines ON Orders.ID=OrderLines.OrderID
  4. WHERE Orders.ID = 12345


oraz

  1. SELECT *
  2. FROM Orders
  3. JOIN OrderLines ON Orders.ID=OrderLines.OrderID AND Orders.ID=12345


jak rozumiem w obu przypadkach z tabel zostaną zwrócone wartości spełniające warunki:
w Orders istnieje ID o numerze 12345
w OrderLines istnieje OrderId = 12345


Orders.ID | | OrderLines.OrderID || OrderLines.ID || OrderLines.Name
---------------------------------------------------------------
1 || 1 || 1 || test
1 || 1 || 2 || innePole
1 || 1 || 3 || drugiePole





wracając natomiast od początkowego przypadku i lekko go modyfikując chodziło raczej o :

  1. SELECT *
  2. FROM Orders
  3. LEFT JOIN OrderLines ON Orders.ID=OrderLines.OrderID
  4. WHERE Orders.ID = 12345


oraz

  1. SELECT *
  2. FROM Orders
  3. LEFT JOIN OrderLines ON Orders.ID=OrderLines.OrderID AND Orders.ID=12345


W obu przypadkach zostaną zwrócone te same wartości . Mam rację ?


EDIT: widze , ze wyedytowales wiadomosc: ) czyli to pierwsze zalozenie sie zgadza.

Ten post edytował Petre 27.02.2013, 12:34:49
Go to the top of the page
+Quote Post

Posty w temacie


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 Aktualny czas: 11.10.2025 - 22:54