【问题标题】:Filtering with foreign key使用外键过滤
【发布时间】:2012-03-07 17:31:11
【问题描述】:

我有三个表tblClients、tblClientsActivities 和tblActivities

tblClients 和 tblClientsActivities 连接在一起生成下面的表 A

SELECT * from tblClientsActivities 
left join tblclients on tblClientsActivities.fk_cid=tblclients.pk_cid

PK_AID      FK_CID     FK_AID
1             4          1   
2             4          2
3             4          4
4             5          1
5             5          3
6             5          5
7             6          1
8             6          2
9             7          6
10            8          3

问题是我如何删除 FK_AID 1

的所有客户端

【问题讨论】:

  • 您能否根据这个相同的示例提供一个包含您预期结果的表格?
  • PK_AID 和 FK_AID 是否存在于 tblClientsActivities 或 tblclients 中?您提到 tblActivities 但没有引用它。下面的两个答案可能会起作用,但在我看来你应该已经知道了。

标签: sql sql-server sql-server-2005


【解决方案1】:

说明

简单地使用WHERE 子句。

样本

SELECT * FROM tblClientsActivities 
LEFT JOIN tblclients on tblClientsActivities.fk_cid=tblclients.pk_cid
WHERE FK_AID <> 1

【讨论】:

    【解决方案2】:

    在 WHERE 子句中使用限制:

    SELECT * from tblClientsActivities
    left join tblclients on tblClientsActivities.fk_cid=tblclients.pk_cid
    where FK_AID != 1
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-09-04
      • 2020-09-07
      • 2012-01-23
      • 1970-01-01
      • 2019-02-12
      • 1970-01-01
      • 2014-08-13
      • 2018-01-05
      相关资源
      最近更新 更多