gpt4 book ai didi

MySQL从多个表中选择名称

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

我知道这一定很简单,但现在我是 sql 菜鸟,所以对我来说这并不简单。我有 2 张 table :

A类

Id     Name
1 Kate
2 John

B类

Id     Name
1 Mark
2 Lisa

表 ClassA 和 ClassB 中的所有名称都是唯一的。

所以我需要插入表ClassB名称“Kate”,但在此之前我检查Kate是否已存在于表ClassA和ClassB中。

如果存在,则从表中返回行,如果不存在,则不返回任何内容

如果我使用一张表进行检查,结果就可以了:

SELECT ClassA.name FROM ClassA WHERE ClassA.name=‘Kate’

结果:

姓名

凯特

但是如果我检查两个表,结果不会返回任何内容。我认为这是因为 ClassA 返回 Kate,但 ClassB 返回 Null 结果

 SELECT ClassA.name, ClassB.name FROM ClassA,ClassB WHERE ClassA.name=‘Kate’ OR ClassB.name= ‘Kate’

请帮助解决我的问题

最佳答案

I check if Kate already exist in tables ClassA and ClassB. If exist, then return line from table, if not exist then return nothing

您可以使用UNION:

select *
from (
select id, name from classA
union select id, name from classB
) t
where name = 'Kate'

或者,如果您想知道在哪个表中找到了该名称:

select *
from (
select id, name, 'classA' tab from classA
union all select id, name, 'classB' from classB
) t
where name = 'Kate'

注意:如果两个表中都存在该名称,则第二个查询将生成两行。

关于MySQL从多个表中选择名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59209418/

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