Skip to content

Instantly share code, notes, and snippets.

T1

a INT b INT
0 1
2 3

T2

| a INT | b INT | c INT |

SELECT
a, c
FROM
T1, T2;
SELECT
InnerResult.T1.a
FROM
(SELECT
T1.a, c
FROM
T1, T2) AS InnerResult
WHERE
InnerResult.T1.a = InnerResult.c;
SELECT
InnerResult.a
FROM
(SELECT
T1.a, c
FROM
T1 JOIN T2 ON InnerResult.a = InnerResult.c
) AS InnerResult;
SELECT 
  InnerResult[0] 
FROM 
  (SELECT 
  T1[0], T2[2] 
  FROM 
  T1 JOIN T2 ON T1[0] = T2[2]
) AS InnerResult;
SELECT * FROM a, b WHERE a.id = b.id;
SELECT * FROM a INNER JOIN b ON a.id = b.id;
SELECT c_balance, c_first, c_middle, c_id
FROM customer
WHERE c_last=? AND c_d_id=? AND c_w_id=?
ORDER BY c_first;
auto gt_customer = std::make_shared<opossum::GetTable>("CUSTOMER");
auto validate = std::make_shared<opossum::Validate>(gt_customer);
auto first_filter = std::make_shared<opossum::TableScan>(validate, opossum::ColumnID{5} /* "C_LAST" */,
opossum::ScanType::OpEquals, c_last);
auto second_filter = std::make_shared<opossum::TableScan>(first_filter, opossum::ColumnID{1} /* "C_D_ID" */,
opossum::ScanType::OpEquals, c_d_id);
auto third_filter = std::make_shared<opossum::TableScan>(second_filter, opossum::ColumnID{2} /* "C_W_ID" */,
-- In the inner query
 -- * c needs to be resolved to ”T2”, but could also be referred by ”T2.c”
--  * T1.a needs to have the prefix, because ”T2” also contains a column ”a”
 -- * The first output column is nevertheless named “a” and not “T1.a”
 -- In the outer query, the ”InnerResult” prefix is, again, optional, but
-- the subquery needs to have an alias
SELECT 
  InnerResult.a 
FROM 
 (SELECT