mysql - SQL查询: Single row has multiple foreign keys from another table

标签 mysql sql foreign-keys

我有这个结构数据库

create table server(name varchar, dev varchar, qa varchar, prod varchar);

create table app(id varchar, teamname varchar);

insert into server values('trans', 't1','t2','t3');

insert into app values('t1', 'appdev');

insert into app values('t2', 'appqa');

insert into app values('t3', 'appprod');

我需要的是获取 t1、t2 和 t3 的值,我拥有的唯一变量是 server.name。我如何得到它。 我的初始查询如下所示

select(select app.teamname from app join server on app.id=server.dev)as devteam,
(select app.teamname from app join server on app.id=server.qa)as qateam,
(select app.teamname from app join server on app.id=server.prod)as prodteam from server where server.name='trans'

但它看起来真的又长又幼稚。有更好的方法来得到这个吗?

最佳答案

另一种方式——不一定更好,但也许更简单,是:

select
    app1.teamname as devteam,
    app2.teamname as qateam,
    app3.teamname as prodteam
from
   server
   inner join app as app1 on app1.id = server.dev
   inner join app as app2 on app2.id = server.qa
   inner join app as app3 on app3.id = server.prod
where
   server_name = 'trans';

关于mysql - SQL查询: Single row has multiple foreign keys from another table,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50868403/

相关文章:

mysql - 如何在mysql中将日期时间分组为3小时的间隔

python - 字符串值错误错误 - Python + mariaDB

mysql - 在 mysql 中通过代码获取带有 min(price) 组的行的值

sql - 当我的数据库更新时通知我的 WCF 服务

mysql - 连接用户和消息的数据库设计困境

java - 3层数据库。如何将 3 个实体相互关联?

php - 打破关于mysql的脚本错误

基于字母代码的 PHP/SQL ID

php - PayPal IPN 处理器不再插入数据库

mysql - 产品、类别和公司之间的数据库关系