Sql 在JOIN语句中使用自己的元组

Sql 在JOIN语句中使用自己的元组,sql,join,tuples,relation,Sql,Join,Tuples,Relation,是否可以使用自己的元组作为JOIN语句的源 下面是我正在寻找的一个例子: 从用户u中选择u.id、u.name 内部联接{tuple1},{tupel2},{tupel3},…} 在SQL Server 2008中,您使用 许多dbms平台支持公共表表达式 with my_own_tuples as ( select 'value1' as column1, 'value2' as column2 union all select 'value3', 'value4'

是否可以使用自己的元组作为JOIN语句的源

下面是我正在寻找的一个例子:


从用户u中选择u.id、u.name
内部联接{tuple1},{tupel2},{tupel3},…}

在SQL Server 2008中,您使用


许多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);

选择*
来自表1 t1

在哪里(t1.Col1,t1.Col2)可以更详细地描述您的问题?被称为“表值构造函数”,它起源于SQL-92标准。@onedaywhen-谢谢,现在当我知道它叫什么时,我也找到了文档:)。您还可以补充说,它更常用于
插入表值…
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);