之前所有在JOIN的尝试都给我留下了填充id,结果标题键的光盘或项目数据(可能发生了冲突)。
所以我有:
item table
fields: id, title
disc table
fields: id, title
item_disc table
fields: item_id, disc_id
如何构建双连接,以便我可以访问项目的相关光盘。目前我正在运行两个单独的查询,一个用于单项记录,另一个用于光盘阵列。
除了在一个带有连接的查询中更容易做,如果我想要检索多个记录,我当前需要为每个项目运行2个查询,因为我无法加入我的数据。
请帮忙!!我觉得这是我最后的很多障碍(虽然不敢说得太早)。
答案 0 :(得分:4)
因为item和disc都有名为id和title的列,所以它们会相互覆盖。您需要使用as
来区分它们......
所有项目及其相关光盘:
select m.*, i.title as item_title, d.title as disc_title
from item i, disc d, item_disc m where i.id = m.item_id and
d.id = m.disc_id order by i.title, d.title
一个项目及其光盘:
select m.*, i.title as item_title, d.title as disc_title
from item i, disc d, item_disc m where i.id = m.item_id = ? and
d.id = m.disc_id order by d.title
替换?与您想要的项目
答案 1 :(得分:0)
这是我正在编译为一系列截屏视频的多对多数据库关系的CodeIgniter实现。这是抽象的,并不打算在生产环境中按原样使用。因此,它应该有助于澄清这一概念。