gpt4 book ai didi

mysql - 查询是否设置了外键

转载 作者:行者123 更新时间:2023-11-29 14:11:55 25 4
gpt4 key购买 nike

好的,我有两个 MySQL 表:

TableA 包含以下列:idTableAidTableB_FK

TableB 包含以下列:idTableBidTableA_FK

关系如下:

  1. 从 TableA 到 TableB 的一对多关系(TableA.idTableA 是该关系的 PK 和 FK 为 TableB.idTableA_FK)

  2. TableA 和 TableB 之间的一对一关系 (TableB.idTableB是PK,用TableA.idTableB_FK表示)。这是一对一关系,因为 TableA 中只能有一行来取外键值。

假设表A中有以下数据

idTableA     |    idTableB_FK
-----------------------------
1 | 2
2 | 5
3 | 6
4 | 8

以及TableB中的以下内容

idTableB     |    idTableA_FK
------------------------------
1 | 1
2 | 1
3 | 2
4 | 2
5 | 2
6 | 3
7 | 3
8 | 4

现在,我想要一个将显示 idTableA、idTableB 并显示 is_set 列的查询。设置是一个是/否字段(或 1/0),仅当 TableA.idTableB_FK 具有该 FK 的相应设置值时,它才设置为 yes。所以对于上面的例子:

idTableA    |    idTableB    |     is_set
---------------------------------------------
1 | 1 | no
1 | 2 | yes
2 | 3 | no
2 | 4 | no
2 | 5 | yes
3 | 6 | yes
3 | 7 | no
4 | 8 | yes

谢谢。

最佳答案

我认为您正在寻找这样的东西:

select
TableA.idTableA,
TableB.idTableB,
case when EXISTS(select null
from TableA TableA_1
where
TableA_1.idTableA = TableA.idTableA
and TableA_1.idTableB_FK = TableB.idTableB)
then 'yes' else 'no' end as is_set
from
TableB left join TableA
on TableB.idTableA_FK = TableA.idTableA

关于mysql - 查询是否设置了外键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13368152/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com