0

我想我知道这个问题的答案,但我还是想问问社区。

想象两个表:

表A

ID    |    Col1    |    isActive
1       "Some Data1"     1
2       "Some Data2"     1
3       "Some Data3"     0
4       "Some Data4"     1

表B

ID    |    TableA_ID    |    isActive
1          1                 1
4          1                 1
7          3                 1
8          4                 1

以及以下查询:

SELECT A.COL1
FROM TableB as B
JOIN TableA as A
  ON A.ID = B.TableA_ID
WHERE b.ID in (1,4,7);

这将返回以下结果:

    Col1
"Some Data1"
"Some Data1"
"Some Data3"

但我想要的是:

    Col1
"Some Data1"
"Some Data1"

我不想在每个联接和每个 where 子句中添加“WHERE isActive = 1”条件。像许多其他人一样,我们不喜欢删除记录的想法。但是,在每个查询中添加“WHERE isActive = 1”是非常乏味和重复的。

所以问题是:

我可以对对我的数据库进行的所有查询强制执行这种“全局条件”吗?有没有人想过这个?

4

1 回答 1

2

您可以通过创建一个来模拟“全局条件” VIEW,但除此之外...... MySQL 中没有这样的东西。

于 2012-10-26T15:57:32.553 回答