基于多对多表从一个表调用信息

时间:2013-11-18 01:49:00

标签: php mysql sql many-to-many

我有点不习惯使用INNER JOIN概念和mySQL& PHP从两个表中调用信息。我认为自己是PHP和PHP的高级初学者。 mySQL,使用Dreamweaver也不时依赖。

我所拥有的是一个带有主键account_id的“帐户”表,当用户登录时,该表存储在会话中。我有一个m2m表存储account_id并且它是{{ 1}}。最后我有一个production_id表,主键是(你猜对了)Productions。我要做的是让它查找用户被分配到的所有作品(通过m2m表),并从制作表本身中提取这些特定作品的细节。我假设使用INNER JOIN可以解决这个问题吗?

这是我试图执行的内容(请注意,在Dreamweaver端设置“sessionaccountid”以提取会话数据)。

production_id

不幸的是,这在mySQL中出现了一个Not unique table错误。任何关于让它锁定在右边的指导将不胜感激!当然,如果你还可以解释我做错了什么/你的建议更有意义,那么我可以为自己写下来,那也很棒!

1 个答案:

答案 0 :(得分:0)

由于您当前的查询不遵循nether隐式或显式JOIN语法,因此不正确。

使用显式ANSI JOIN语法并指定表格在查询中的相关方式

SELECT a.account_id, a.account_name, p.production_id, p.production_name 
  FROM Junction j JOIN Accounts a
    ON j.account_id = a.account_id JOIN Productions p
    ON j.production_id = p.production_id
 WHERE j.account_id = ?

这是 SQLFiddle 演示