Loading:


Podzapytania wierszowe - MySQL

Do tej pory rozważaliśmy podzapytania odnoszące się do kolumn (podzapytania skalarne), tzn. podzapytania, które zwracają pojedynczą wartość kolumny. Podzapytanie wierszowe jest takim podzapytaniem, które zwraca jeden wiersz, i tym samym może zwrócić więcej niż jedną wartość kolumny.

 

Na przykład patrz Listing 1.0 lub 2.0.

 

 

 

W obydwu przypadkach wartośc zapytania jest równa TRUE jeśli tylko tablica tab2 zawiera wiersz, w którym col1 = 1, i col2 = 2.

 

Wyrażenie (1,2) i ROW(1,2) są czasem nazywane konstruktorami wierszowymi. Są też poprawne w troche innym kontekście. Na przykład, następne dwa zapytania są składniowo równoważne:(lisitng 3.0)

 

 

Normalnie, konstruktorów wieszowych używa się w celu porównania z podzapytaniami, które zwracają wartości dówch lub więcej kolumn. Na przykład, wykonanie nastepującego zapytania: (patrz listing 4.0)

 

da nam wynik: "wszystkie wiersze, w tablicy tab1 które istnieją też w tablicy tab2".



Napisz Artyku³

Listing

--Listing 1.0
SELECT * FROM tab1 WHERE (1,2) = (SELECT col1, col2 FROM tab2);

--Listing 2.0
SELECT * FROM tab1 WHERE ROW(1,2) = (SELECT col1, col2 FROM tab2);  

--Listing 3.0
SELECT * FROM tab1 WHERE (col1,col2) = (1,1);
SELECT * FROM tab1 WHERE col1 = 1 AND col2 = 1;

--Listing 4.0
SELECT col1,col2,col3
     FROM tab1
      WHERE (col1,col2,col3) IN
       (SELECT col1,col2,col3 FROM tab2);




Dodano przez: divix
Ranga: Administrator serwisu Punktów: 0
Komentarze użytkowników
    • Tre¶æ komentarza
      Kod do komentarza (opcjonalnie)
      PHP JavaScript MySQL Smarty SQL HTML CSS ActionScript
      Autor
      Token
      token

       

       








funkcje.net
Wszelkie prawa zastrzeżone©. | Funkcje.net 2008-2024 v.1.5 | design: diviXdesign & rainbowcolors