-1

假设我在数据库中有两个表:Table1Table2.

Table1有以下列:

Var1 | Var2

Table2具有以下列:

Var3 | Var4

我也有一个常数,x.

现在,我想编写一个 SQL 表达式,其中包含Table1满足以下条件的每一行:

Var1 = x 或者there is a row in Table2 where Var4=Var2 and where Var3=x

如何将其编写为 SQL 表达式?

我想它应该从那里开始,SELECT * FROM Table1 WHERE Var1=x但从那里,我迷路了。

4

2 回答 2

1

您需要的神奇元素是 UNION,它本质上将一个结果集附加到另一个结果集。

SELECT *
FROM Table1
WHERE Var1=x

UNION

SELECT *
FROM Table1
JOIN Table2 ON Table1.Var2 = Table2.Var4
WHERE Table1.Var1 <> x -- this is to avoid dups of rows that satisfy both cases
  AND Table2.Var3 = x
于 2012-10-23T21:57:18.823 回答
0
select t1.* from table1 t1, table2 t2, table3 t3
where t1.id=1 and t2.year='2012' and t3.user='me'
and t1.id = t2.id

或者

select t1.* from table1 t1
 inner join table2 t2
on t1.var2=t2.Var4
where t2.Var3 = x

我认为第二个更可能满足您的需求。

于 2012-10-23T21:57:20.020 回答