有这个问题,我不知道如何从多个表中提取数据。我试图使用INNER JOIN和UNION。 这里是我想出迄今:sql查询。与多个表相关
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_channel,name_ganre
谢谢!
哪个表是“主”(或“父”)表?主表中每行的所有其他表中总是有匹配的行吗? – Bohemian 2012-01-13 09:12:14
请注意,因为每个通道可以有多个类型,所以某些通道(每个通道一个行,每个流派)可能会有多个行。 – 2012-01-13 09:14:57
@波希米亚:这里有一个多对多的关系,而不是父母与子女的关系。 – 2012-01-13 09:16:04