JOINステートメントのソースとして独自のタプルを使用することは可能ですか?
これが私が探しているものの例です:
SELECT u.id, u.name FROM users u
INNER JOIN {{tupl1},{tupel2},{tupel3},...}
SQL Server 2008では、テーブル値コンストラクターを使用します。
declare @T table(ID int)
insert into @T values (1),(2),(3),(4),(5)
select *
from @T as T1
inner join (
values (1, 'Row 1'),
(2, 'Row 2')
) as T2(ID, Col1)
on T1.ID = T2.ID
多くのdbmsプラットフォームは、一般的なテーブル式をサポートしています。
with my_own_tuples as (
select 'value1' as column1, 'value2' as column2
union all
select 'value3', 'value4'
union all
select 'value5', 'value6'
)
select column1, column2
from my_other_table
inner join my_own_tuples on (my_own_tuples.column1 = my_other_table.column1);
MySqlは、比較と同等性を備えたタプルをある程度サポートしていますが、これについての決定的なリファレンスを見つけるのに苦労しています。
例えば:
SELECT *
FROM table1 t1
INNER JOIN table2 t2
ON (t1.Col1, t1.Col2) = (t2.Col1, t2.Col2);
と
SELECT *
FROM table1 t1
WHERE (t1.Col1, t1.Col2) <= ('SomeValue', 1234);