, , , :
<_> [NOT] <> {ALL | SOME | ANY } (<>)
ALL , , , .
WHERE STOLBEZ > ALL (SELECT POLE FROM TABLIZA)
SOME ( ANY) , , .
WHERE STOLBEZ > SOME (SELECT POLE FROM TABLIZA)
.
, .
SELECT * FROM RASHOD R1
WHERE R1.KOLVO > ALL
(SELECT AVG(R2.KOLVO) FROM RASHOD R2
GROUP BY POKUP)
, .
SELECT * FROM RASHOD R1
WHERE R1.KOLVO > SOME
(SELECT AVG(R2.KOLVO) FROM RASHOD R2
GROUP BY POKUP)
HAVING
, HAVING.
.
, .
SELECT R1.POKUP, AVG(R1.KOLVO) FROM RASHOD R1
GROUP BY R1.POKUP
HAVING AVG(R1.KOLVO) >= ALL
(SELECT AVG(R2.KOLVO) FROM RASHOD R2
GROUP BY POKUP)
FROM :
SELECT { * | <1> [, <2> ]}
FROM <1> <_> JOIN <2> ON <_>
, , . , :
LEFT ( ), 1 ( ).
RIGHT ( ), 2 ( ).
FULL ( ), 1, 2.
A
. P1 | .P2 | .P3 |
a | X | |
b | X | |
c | Y | |
d |
B
. P1 | .P2 |
x | |
y | |
z |
SELECT A.P1, A.P2, B.P2
FROM A
LEFT JOIN B ON A.P2 = B.P1
. A. P1 | . A.P2 | . B.P2 |
A | x | |
B | x | |
C | y | |
D |
SELECT A.P1, A.P2, B.P2
|
|
FROM A
RIGHT JOIN B ON A.P2 = B.P1
. A. P1 | . A.P2 | . B.P2 |
a | x | |
b | x | |
c | y | |
SELECT A.P1, A.P2, B.P2
FROM A
FULL JOIN B ON A.P2 = B.P1
. A. P1 | . A.P2 | . B.P2 | . B.P2 |
A | x | x | |
B | x | x | |
C | y | y | |
D | |||
z |
1.
SELECT R.DAT_RASH, R.TOVAR, T.ED_IZM, R.KOLVO, P.ADRES
FROM RASHOD R
LEFT JOIN POKUPATELI P ON R.POKUP = P.POKUP
LEFT JOIN TOVARY T ON R.TOVAR = T.TOVAR
2.
SELECT P.POKUP, R.DAT_RASH, R.TOVAR, T.ED_IZM, R.KOLVO
FROM POKUPATELI P
P LEFT JOIN RASHOD R ON R.POKUP = P.POKUP
INNER JOIN TOVARY T ON R.TOVAR = T.TOVAR
3.4.1.14. UNION
. ( ). , .
SELECT R.*
FROM RASHOD R
WHERE R.TOVAR CONTAINING
UNION
SELECT R.*
FROM RASHOD R
WHERE R.KOLVO >= 100
IS NULL
, ( ) NULL, :
<> IS [NOT] NULL
.
, .
SELECT * FROM RASHOD
WHERE POKUP IS NULL