Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
sql查询。与多个表关联_Sql_Database - Fatal编程技术网

sql查询。与多个表关联

sql查询。与多个表关联,sql,database,Sql,Database,有了这个问题,我不知道如何从多个表中提取数据。我尝试使用内部联接和并集。 以下是我到目前为止所做的: select `name_ganre` from `teleprogram`.`ganres` where `idganre`=any(select `idganre` from `teleprogram`.`ganre-transfer` where `idtransfer`=any(select `idtransfer` from `teleprogram`.`broadcasting`)

有了这个问题,我不知道如何从多个表中提取数据。我尝试使用内部联接和并集。 以下是我到目前为止所做的:

select `name_ganre` from `teleprogram`.`ganres`
where `idganre`=any(select `idganre` from `teleprogram`.`ganre-transfer` 
where `idtransfer`=any(select `idtransfer` from `teleprogram`.`broadcasting`));

select `name_channel` from `teleprogram`.`channel` 
where `idchannel`= any(select `idchannel` from `teleprogram`.`broadcasting`);
我需要输入一个频道的列名。这一流派的另一个名字

broadcasting 
rows: idtransfer, idchannel

transfer
rows: idtransfer, name_transfer

ganre-transfer
rows: idganre, idtransfer

ganre
rows: idganre, name_ganre

channels
rows: idchannel, name_channel
我正试图通过广播获取数据。可以简化吗? 查询后:name\u channel,name\u ganre


谢谢大家!

您需要的查询是:

select c.name_channel, g.name_ganre
from channels c
inner join broadcasting b on b.idchannel = c.idchannel
inner join ganre-transfer gt on gt.idtransfer = b.idtransfer
inner join ganre g on g.idganre = gt.idganre

您可以看到
内部联接的工作原理

您需要的查询是:

select c.name_channel, g.name_ganre
from channels c
inner join broadcasting b on b.idchannel = c.idchannel
inner join ganre-transfer gt on gt.idtransfer = b.idtransfer
inner join ganre g on g.idganre = gt.idganre

您可以看到
内部联接的工作原理

哪个表是“主”(或“父”)表?主表中的每一行在所有其他表中总是有匹配的行吗?请注意,因为每个频道可以有多个类型,所以某些频道可能会有多行(每个频道一行,每个类型)。@Bohemian:这里有多对多关系,而不是父子关系。哪个表是“主”(或“父”)表?主表中的每一行在所有其他表中总是有匹配的行吗?请注意,因为每个频道可以有多个类型,所以某些频道可能会有多行(每个频道一行,每个类型)。@Bohemian:这里有多对多关系,而不是父子关系。