SQL-เตฝ, เดจเดฟเดเตเดเตพ "เดเดจเตเดคเดพเดฃเต" เดจเตเดเดพเตป เดเดเตเดฐเดนเดฟเดเตเดเตเดจเตเดจเดคเตเดจเตเดจเต เดตเดฟเดตเดฐเดฟเดเตเดเตเดจเตเดจเต, เด
เดคเต เดจเดเดชเตเดชเดฟเดฒเดพเดเตเดเตเดฃเตเดเดคเต "เดเดเตเดเดจเต" เดเดจเตเดจเดฒเตเดฒ. เด
เดคเดฟเดจเดพเตฝ, "เดเตเตพเดเตเดเตเดจเตเดจเดคเตเดชเตเดฒเต เดเดดเตเดคเดฟเดฏเดฟเดฐเดฟเดเตเดเตเดจเตเดจเดคเตเดชเตเดฒเต" เดเดจเตเดจ เดถเตเดฒเดฟเดฏเดฟเตฝ SQL เด
เดจเตเดตเตเดทเดฃเดเตเดเตพ เดตเดฟเดเดธเดฟเดชเตเดชเดฟเดเตเดเตเดจเตเดจเดคเดฟเดฒเต เดชเตเดฐเดถเตเดจเด เด
เดคเดฟเดจเตเดฑเต เดฌเดนเตเดฎเดคเดฟเดฏเตเดเต เดธเตเดฅเดพเดจเดคเตเดคเต เดเดเตเดเตเดเตเดจเตเดจเต.
เดเดจเตเดจเต, เดตเดณเดฐเต เดฒเดณเดฟเดคเดฎเดพเดฏ เดเดฆเดพเดนเดฐเดฃเดเตเดเตพ เดเดชเดฏเตเดเดฟเดเตเดเต, เดเดชเดฏเตเดเดคเตเดคเดฟเดจเตเดฑเต เดชเดถเตเดเดพเดคเตเดคเดฒเดคเตเดคเดฟเตฝ เดเดคเต เดเดจเตเดคเดฟเดฒเตเดเตเดเต เดจเดฏเดฟเดเตเดเตเดฎเตเดจเตเดจเต เดจเตเดเตเดเดพเด GROUP/DISTINCT
ะธ LIMIT
เด
เดตเดฐเตเดเตเดชเตเดชเด.
เดเดชเตเดชเตเตพ, เดจเดฟเดเตเดเตพ เด เดญเตเดฏเตผเดคเตเดฅเดจเดฏเดฟเตฝ เดเดดเตเดคเดฟเดฏเตเดเตเดเดฟเตฝ "เดเดฆเตเดฏเด เด เด เดเดฏเดพเดณเดเตเดเตพ เดฌเดจเตเดงเดฟเดชเตเดชเดฟเดเตเดเตเด, เดคเตเดเตผเดจเตเดจเต เดเดฒเตเดฒเดพ เดคเดจเดฟเดชเตเดชเดเตผเดชเตเดชเตเดเดณเตเด เดเดฑเดฟเดฏเตเด, เดเดฐเตเดฃเตเดฃเด เดฎเดพเดคเตเดฐเดฎเต เดถเตเดทเดฟเดเตเดเดพเดตเต เดเดฐเต เดเตเดฏเตเดเตเดเตเด เดชเดเตผเดคเตเดคเตเด" - เดเดฃเดเตเดทเตป เดเดตเดถเตเดฏเดฎเดฟเดฒเตเดฒเตเดเตเดเดฟเดฒเตเด เดเดคเต เดเตเดคเตเดฏเดฎเดพเดฏเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเด.
เดเดฟเดฒเดชเตเดชเตเตพ เดจเดฟเดเตเดเตพ เดญเดพเดเตเดฏเดตเดพเดจเดพเดฃเต, เด เดคเต "เดตเตเดฑเตเด เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดจเตเดจเต", เดเดฟเดฒเดชเตเดชเตเตพ เดเดคเต เดชเตเดฐเดเดเดจเดคเตเดคเดฟเตฝ เด เดธเตเดเดเดฐเดฎเดพเดฏ เดธเตเดตเดพเดงเตเดจเด เดเตเดฒเตเดคเตเดคเตเดจเตเดจเต, เดเดฟเดฒเดชเตเดชเตเตพ เดเดคเต เดกเดตเดฒเดชเตเดชเดฑเตเดเต เดเดพเดดเตเดเดชเตเดชเดพเดเดฟเตฝ เดจเดฟเดจเตเดจเต เดคเดฟเดเดเตเดเตเด เด เดชเตเดฐเดคเตเดเตเดทเดฟเดคเดฎเดพเดฏ เดเดซเดเตเดฑเตเดฑเตเดเตพ เดจเตฝเดเตเดจเตเดจเต.
เดถเดฐเดฟ, เดเดฐเตเดชเดเตเดทเต เด
เดคเตเดฐ เดเดเดญเตเดฐเดฎเดฒเตเดฒ, เดชเดเตเดทเต ...
"เดฎเดงเตเดฐ เดฆเดฎเตเดชเดคเดฟเดเตพ": เดเตเดฐเตเด + เดกเดฟเดธเตเดฑเตเดฑเดฟเดเตเดเตเดฑเตเดฑเต
SELECT DISTINCT
X.*
FROM
X
JOIN
Y
ON Y.fk = X.pk
WHERE
Y.bool_condition;
เด
เดตเตผเดเตเดเต เดเดจเตเดคเดพเดฃเต เดตเตเดฃเตเดเดคเตเดจเตเดจเต เดตเตเดฏเดเตเดคเดฎเดพเดเตเด เดชเตเตผเดคเตเดคเดฟเดฏเดพเดเตเดเดฟเดฏ เด
เดตเดธเตเดฅเดฏเตเดฎเดพเดฏเดฟ เดฌเดจเตเดงเดชเตเดชเตเดเตเด Y-เตฝ เดฑเตเดเตเดเตเตผเดกเตเดเตพ เดเดณเตเดณ X เดฑเตเดเตเดเตเตผเดกเตเดเตพ เดคเดฟเดฐเดเตเดเตเดเตเดเตเดเตเด. เดตเดดเดฟ เดเดฐเต เด
เดชเตเดเตเดท เดเดดเตเดคเดฟ JOIN
- เดเตเดฑเดเตเดเต pk เดฎเตเดฒเตเดฏเดเตเดเตพ เดชเดฒเดคเดตเดฃ เดฒเดญเดฟเดเตเดเต (เดเตเดคเตเดฏเดฎเดพเดฏเดฟ เดเดคเตเดฐ เด
เดจเตเดฏเตเดเตเดฏเดฎเดพเดฏ เดเตปเดเตเดฐเดฟเดเตพ Y-เตฝ เดชเตเดฐเดคเตเดฏเดเตเดทเดชเตเดชเตเดเตเดเต). เดเดเตเดเดจเต เดจเตเดเตเดเด เดเตเดฏเตเดฏเดพเด? เดคเตเตผเดเตเดเดฏเดพเดฏเตเด DISTINCT
!
เดเดฐเต เดเดเตโเดธเต-เดฑเตเดเตเดเตเตผเดกเดฟเดจเตเด เดจเตเดฑเตเดเดฃเดเตเดเดฟเดจเต เดตเต-เดฑเตเดเตเดเตเตผเดกเตเดเตพ เดเดณเตเดณเดชเตเดชเตเตพ เดเดคเต เดชเตเดฐเดคเตเดฏเตเดเดฟเดเตเดเตเด "เดธเดจเตเดคเตเดทเดเดฐเดฎเดพเดฃเต", เดคเตเดเตผเดจเตเดจเต เดกเตเดฏเตเดชเตเดฒเดฟเดเตเดเตเดฑเตเดฑเตเดเตพ เดตเตเดฐเตเดเดฟเดคเดฎเดพเดฏเดฟ เดจเตเดเตเดเด เดเตเดฏเตเดฏเดชเตเดชเตเดเตเดจเตเดจเต ...
เดเดเตเดเดจเต เดถเดฐเดฟเดฏเดพเดเตเดเดพเด? เดเดฐเดเดญเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเต, เดชเตเดฐเดถเตเดจเด เดฎเดพเดฑเตเดฑเดพเตป เดเดดเดฟเดฏเตเดฎเตเดจเตเดจเต เดฎเดจเดธเตเดธเดฟเดฒเดพเดเตเดเตเด "เดจเดฟเดตเตผเดคเตเดคเดฟเดเตเด เด
เดตเดธเตเดฅเดฏเตเดฎเดพเดฏเดฟ Y-เตฝ เดเตเดฑเดเตเดเดคเต เดเดฐเตเดฃเตเดฃเดฎเตเดเตเดเดฟเดฒเตเด เดฌเดจเตเดงเดชเตเดชเตเดเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจ X เดฐเตเดเดเตพ เดคเดฟเดฐเดเตเดเตเดเตเดเตเดเตเด" - เดเดฒเตเดฒเดพเดคเตเดคเดฟเดจเตเดฎเตเดชเดฐเดฟ, Y- เดฑเตเดเตเดเตเตผเดกเดฟเตฝ เดจเดฟเดจเตเดจเต เดคเดจเตเดจเต เดเดเตเดเตพเดเตเดเต เดเดจเตเดจเตเด เดเดตเดถเตเดฏเดฎเดฟเดฒเตเดฒ.
เดจเตเดธเตเดฑเตเดฑเดกเต EXISTS
SELECT
*
FROM
X
WHERE
EXISTS(
SELECT
NULL
FROM
Y
WHERE
fk = X.pk AND
bool_condition
LIMIT 1
);
PostgreSQL-เดจเตเดฑเต เดเดฟเดฒ เดชเดคเดฟเดชเตเดชเตเดเตพ, EXISTS-เตฝ เดตเดฐเตเดจเตเดจ เดเดฆเตเดฏ เดเตปเดเตเดฐเดฟ เดเดฃเตเดเตเดคเตเดคเดฟเดฏเดพเตฝ เดฎเดคเดฟเดฏเตเดจเตเดจเตเด เดชเดดเดฏเดต เดเดฃเตเดเตเดคเตเดคเตเดจเตเดจเดฟเดฒเตเดฒเตเดจเตเดจเตเด เดฎเดจเดธเตเดธเดฟเดฒเดพเดเตเดเตเดจเตเดจเต. เด
เดคเตเดเตเดฃเตเดเต เดเดชเตเดชเตเดดเตเด เดธเตเดเดฟเดชเตเดชเดฟเดเตเดเดพเตป เดเดพเตป เดเดเตเดฐเดนเดฟเดเตเดเตเดจเตเดจเต LIMIT 1
เด
เดเดคเตเดคเต EXISTS
.
เดฒเดพเดฑเตเดฑเดฑเตฝ เดเตเดฏเดฟเตป
SELECT
X.*
FROM
X
, LATERAL (
SELECT
Y.*
FROM
Y
WHERE
fk = X.pk AND
bool_condition
LIMIT 1
) Y
WHERE
Y IS DISTINCT FROM NULL;
เดเดตเดถเตเดฏเดฎเตเดเตเดเดฟเตฝ, เดเดฃเตเดเตเดคเตเดคเดฟเดฏ เด เดจเตเดฌเดจเตเดง Y-เดฐเตเดเดฏเดฟเตฝ เดจเดฟเดจเตเดจเต เดเตเดฑเดเตเดเต เดกเดพเดฑเตเดฑ เดเดเตป เดคเดฟเดฐเดฟเดเต เดจเตฝเดเดพเตป เดเดคเต เดเดชเตเดทเตป เด เดจเตเดตเดฆเดฟเดเตเดเตเดจเตเดจเต. เดธเดฎเดพเดจเดฎเดพเดฏ เดเดฐเต เดเดชเตเดทเตป เดฒเตเดเดจเดคเตเดคเดฟเตฝ เดเตผเดเตเดเดเตเดฏเตเดฏเตเดจเตเดจเต
"PostgreSQL เดเดจเตเดฑเดฟเดชเดพเดฑเตเดฑเตเดฃเตเดเตพ: เดเดฐเต เด เดชเตเตผเดต เดฑเตเดเตเดเตเตผเดกเต เดเดฐเต เดเตเดฏเดฟเตป เดฎเดงเตเดฏเดคเตเดคเดฟเตฝ เดเดคเตเดคเตเด" .
"เดเดจเตเดคเตเดเตเดฃเตเดเต เดเตเดเตเดคเตฝ เดชเดฃเด เดจเตฝเดเดฃเด": DISTINCT [ON] + LIMIT 1
เด เดคเตเดคเดฐเด เด เดจเตเดตเตเดทเดฃ เดชเดฐเดฟเดตเตผเดคเตเดคเดจเดเตเดเดณเตเดเต เดเดฐเต เด เดงเดฟเด เดจเตเดเตเดเด, เดเดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เดธเดจเตเดฆเตผเดญเดคเตเดคเดฟเดฒเตเดจเตเดจเดชเตเดฒเต, เด เดตเดฏเดฟเตฝ เดเดจเตเดจเต เด เดคเดฟเดฒเดงเดฟเดเดฎเต เดฎเดพเดคเตเดฐเดฎเต เดเดตเดถเตเดฏเดฎเตเดณเตเดณเตเดตเตเดเตเดเดฟเตฝ, เดฑเตเดเตเดเตเตผเดกเตเดเตพเดเตเดเดพเดฏเตเดณเตเดณ เดคเดฟเดฐเดฏเตฝ เดเดณเตเดชเตเดชเดคเตเดคเดฟเตฝ เดชเดฐเดฟเดฎเดฟเดคเดชเตเดชเตเดเตเดคเตเดคเดพเดจเตเดณเตเดณ เดเดดเดฟเดตเดพเดฃเต:
SELECT DISTINCT ON(X.pk)
*
FROM
X
JOIN
Y
ON Y.fk = X.pk
LIMIT 1;
เดเดชเตเดชเตเตพ เดเดเตเดเตพ เด เดญเตเดฏเตผเดคเตเดฅเดจ เดตเดพเดฏเดฟเดเตเดเต DBMS เดเดจเตเดคเดพเดฃเต เดเตเดฏเตเดฏเดพเตป เดจเดฟเตผเดฆเตเดฆเตเดถเดฟเดเตเดเตเดจเตเดจเดคเตเดจเตเดจเต เดฎเดจเดธเดฟเดฒเดพเดเตเดเดพเตป เดถเตเดฐเดฎเดฟเดเตเดเตเด:
- เด เดเดฏเดพเดณเดเตเดเตพ เดฌเดจเตเดงเดฟเดชเตเดชเดฟเดเตเดเตเดจเตเดจเต
- X.pk เดฎเตเดเตเดจ เด เดคเตเดฒเตเดฏเดฎเดพเดฏ
- เดถเตเดทเดฟเดเตเดเตเดจเตเดจ เดเตปเดเตเดฐเดฟเดเดณเดฟเตฝ เดจเดฟเดจเตเดจเต เดเดจเตเดจเต เดคเดฟเดฐเดเตเดเตเดเตเดเตเดเตเด
เด เดชเตเดชเตเตพ เดจเดฟเดเตเดเตพเดเตเดเต เดเดจเตเดคเดพเดฃเต เดฒเดญเดฟเดเตเดเดคเต? "เดเดฐเต เดชเตเดฐเดตเตเดถเดจเด เดฎเดพเดคเตเดฐเด" เด เดคเตเดฒเตเดฏเดฎเดพเดฏเดตเดฏเดฟเตฝ เดจเดฟเดจเตเดจเต - เด เดฆเตเดตเดฟเดคเตเดฏเดฎเดฒเตเดฒเดพเดคเตเดคเดตเดฏเดฟเตฝ เดเดคเต เดเดเตเดคเตเดคเดพเตฝ, เดซเดฒเด เดเดเตเดเดจเตเดฏเตเดเตเดเดฟเดฒเตเด เดฎเดพเดฑเตเดฎเต?.. "เดชเดฟเดจเตเดจเต เดตเตเดฏเดคเตเดฏเดพเดธเดฎเดฟเดฒเตเดฒเตเดเตเดเดฟเตฝ, เดเดจเตเดคเดฟเดจเต เดเตเดเตเดคเตฝ เดชเดฃเด เดจเตฝเดเดฃเด?"
SELECT
*
FROM
(
SELECT
*
FROM
X
-- ััะดะฐ ะผะพะถะฝะพ ะฟะพะดััะฝััั ะฟะพะดั
ะพะดััะธั
ััะปะพะฒะธะน
LIMIT 1 -- +1 Limit
) X
JOIN
Y
ON Y.fk = X.pk
LIMIT 1;
เดเดชเตเดชเด เดเตเดคเตเดฏเดฎเดพเดฏเดฟ เด
เดคเต เดตเดฟเดทเดฏเด GROUP BY + LIMIT 1
.
"เดเดจเดฟเดเตเดเต เดเตเดฆเดฟเดเตเดเดพเดจเตเดฃเตเดเต": เดชเดฐเตเดเตเดทเดฎเดพเดฏ GROUP + LIMIT
เดธเดฎเดพเดจเดฎเดพเดฏ เดเดพเดฐเตเดฏเดเตเดเตพ เดตเตเดฏเดคเตเดฏเดธเตเดค เดธเตเดฅเดฒเดเตเดเดณเดฟเตฝ เดธเดเดญเดตเดฟเดเตเดเตเดจเตเดจเต เดถเตเดจเตเดฏเดคเดฏเดฟเดฒเตเดฒเดพเดคเตเดค เดชเดฐเดฟเดถเตเดงเดจเดเตพ เด เดญเตเดฏเตผเดคเตเดฅเดจ เดชเตเดฐเตเดเดฎเดฟเดเตเดเตเดฎเตเดชเตเตพ เด เดเดฏเดพเดณเดเตเดเตพ เด เดฒเตเดฒเตเดเตเดเดฟเตฝ CTEเดเตพ:
...
CASE
WHEN (
SELECT
count(*)
FROM
X
LIMIT 1
) = 0 THEN ...
เดฎเตเดคเตเดคเดคเตเดคเดฟเดฒเตเดณเตเดณ เดชเตเดฐเดตเตผเดคเตเดคเดจเดเตเดเตพ (count/min/max/sum/...
) เดตเตเดฏเดเตเดคเดฎเดพเดฏ เดจเดฟเตผเดฆเตเดฆเตเดถเดเตเดเตพ เดเดฒเตเดฒเดพเดคเต เดชเตเดฒเตเด, เดฎเตเดดเตเดตเตป เดธเตเดฑเตเดฑเดฟเดฒเตเด เดตเดฟเดเดฏเดเดฐเดฎเดพเดฏเดฟ เดจเดเดชเตเดชเดฟเดฒเดพเดเตเดเตเดจเตเดจเต GROUP BY
. เดเตเดเต เดฎเดพเดคเตเดฐเด LIMIT
เด
เดตเตผ เดตเดณเดฐเต เดธเตเดนเตเดฆเดชเดฐเดฎเดฒเตเดฒ.
เดกเตเดตเดฒเดชเตเดชเตผเดเตเดเต เดเดฟเดจเตเดคเดฟเดเตเดเดพเตป เดเดดเดฟเดฏเตเด "เด เดตเดฟเดเต เดฑเตเดเตเดเตเตผเดกเตเดเตพ เดเดฃเตเดเตเดเตเดเดฟเตฝ, เดเดจเดฟเดเตเดเต เดชเดฐเดฟเดงเดฟเดฏเดฟเตฝ เดเตเดเตเดคเตฝ เดเดตเดถเตเดฏเดฎเดฟเดฒเตเดฒ". เดเดจเตเดจเดพเตฝ เด เดคเต เดเตเดฏเตเดฏเดฐเตเดคเต! เดเดพเดฐเดฃเด เด เดเดฟเดธเตเดฅเดพเดจเดคเตเดคเดฟเดจเต เดเดคเต:
- เด เดตเตผเดเตเดเดพเดตเดถเตเดฏเดฎเตเดณเตเดณเดคเต เดเดฃเตเดฃเตเด เดเดฒเตเดฒเดพ เดฐเตเดเดเดณเตเด เด เดจเตเดธเดฐเดฟเดเตเดเต
- เด เดตเตผ เดเตเดฆเดฟเดเตเดเตเดจเตเดจเดคเตเดฐ เดตเดฐเดฟเดเตพ เดจเตฝเดเตเด
เดเดพเตผเดเตเดฑเตเดฑเต เดตเตเดฏเดตเดธเตเดฅเดเดณเต เดเดถเตเดฐเดฏเดฟเดเตเดเต, เดเดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจเดตเดฏเดฟเตฝ เดเดจเตเดจเต เดชเดเดฐเด เดตเดฏเตเดเตเดเตเดจเตเดจเดคเต เดเดเดฟเดคเดฎเดพเดฃเต:
(count + LIMIT 1) = 0
เดเตบNOT EXISTS(LIMIT 1)
(count + LIMIT 1) > 0
เดเตบEXISTS(LIMIT 1)
count >= N
เดเตบ(SELECT count(*) FROM (... LIMIT N))
"เดเตเดฐเดพเดฎเดฟเตฝ เดเดคเตเดฐ เดคเตเดเตเดเดฃเด": DISTINCT + LIMIT
SELECT DISTINCT
pk
FROM
X
LIMIT $1
เด เดญเตเดฏเตผเดคเตเดฅเดจ เดจเดเดชเตเดชเดฟเดฒเดพเดเตเดเตเดจเตเดจเดคเต เดจเดฟเตผเดคเตเดคเตเดฎเตเดจเตเดจเต เดจเดฟเดทเตเดเดณเดเตเดเดจเดพเดฏ เดเดฐเต เดกเตเดตเดฒเดชเตเดชเตผ เดเดคเตเดฎเดพเตผเดคเตเดฅเดฎเดพเดฏเดฟ เดตเดฟเดถเตเดตเดธเดฟเดเตเดเตเดเตเดเดพเด. เดเดฆเตเดฏเด เดตเดฐเตเดจเตเดจ เดตเตเดฏเดคเตเดฏเดธเตเดค เดฎเตเดฒเตเดฏเดเตเดเดณเดฟเตฝ เดจเดฟเดจเตเดจเต $1 เดเดฃเตเดเตเดคเตเดคเตเดฎเตเดชเตเตพ เดคเดจเตเดจเต.
เดญเดพเดตเดฟเดฏเดฟเตฝ เดเดฟเดฒเดชเตเดชเตเตพ เดเดคเต เดเดฐเต เดชเตเดคเดฟเดฏ เดจเตเดกเดฟเดจเต เดจเดจเตเดฆเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดเดฏเตเด เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดเดฏเตเด เดเตเดฏเตเดฏเตเด เดธเตเดเดฟเด เดเดดเดฟเดตเดพเดเตเดเตฝ เดธเตเดเดพเตป, เดเดคเต เดจเดเดชเตเดชเดฟเดฒเดพเดเตเดเตเดจเตเดจเดคเต เดจเดฟเดฒเดตเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดจเตเดจเตเดฃเตเดเต, เดชเดเตเดทเต เดเดคเตเดตเดฐเต เดเดฏเดฟเดเตเดเดฟเดฒเตเดฒ.
เดเดชเตเดชเตเตพ เดเดฆเตเดฏเด เดเดฒเตเดฒเดพ เดฐเตเดเดเดณเตเด เดตเตเดฃเตเดเตเดเตเดเตเดเตเด, เด เดฆเตเดตเดฟเดคเตเดฏเดฎเดพเดฃเต, เด เดตเดฐเดฟเตฝ เดจเดฟเดจเตเดจเต เดฎเดพเดคเตเดฐเดฎเต เดเดตเดถเตเดฏเดชเตเดชเตเดเตเด เดคเตเด เดคเดฟเดฐเดฟเดเต เดฒเดญเดฟเดเตเดเต. เดเดเตเดเตพเดเตเดเต เด เดเตเดเดจเต เดเดจเตเดคเตเดเตเดเดฟเดฒเตเด เดตเตเดฃเดฎเตเดเตเดเดฟเตฝ เด เดคเต เดชเตเดฐเดคเตเดฏเตเดเดฟเดเตเดเต เดธเดเตเดเดเดเดฐเดฎเดพเดฃเต $ 1 = 4, เดเตเดเดพเดคเต เดชเดเตเดเดฟเดเดฏเดฟเตฝ เดฒเดเตเดทเดเตเดเดฃเดเตเดเดฟเดจเต เดฑเตเดเตเดเตเตผเดกเตเดเตพ เดเดฃเตเดเต...
เดตเตเดฑเตเดคเต เดธเดเตเดเดเดชเตเดชเตเดเดพเดคเดฟเดฐเดฟเดเตเดเดพเตป, เดจเดฎเตเดเตเดเต เดเดฐเต เดเดตเตผเดคเตเดคเดจ เด
เดจเตเดตเตเดทเดฃเด เดเดชเดฏเตเดเดฟเดเตเดเดพเด
เด
เดตเดฒเดเดฌเด: www.habr.com