gpt4 book ai didi

php - 基于多对多表调用一张表的信息

转载 作者:行者123 更新时间:2023-11-30 01:01:58 25 4
gpt4 key购买 nike

我有点坚持使用 mySQL 和 PHP 的 INNER JOIN 概念来调用两个表中的信息。我认为自己是 PHP 和 mySQL 的高级初学者,有时也会使用 Dreamweaver。

我拥有的是一个带有主键 account_id 的“帐户”表,当用户登录时,该表将存储到 session 中。我有一个存储 account_id 的 m2m 表code> ,它是 product_id。最后,我有一个 Productions 表,其主键为(您猜对了)production_id。我想做的是让它查找用户分配到的所有作品(通过 m2m 表),并从作品表本身提取这些特定作品的详细信息。我假设使用 INNER JOIN 是解决这个问题的方法?

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

SELECT *
FROM Productions
JOIN Accounts Productions Junction on account_id = sessionaccountid

不幸的是,这在 mySQL 中出现了“非唯一表”错误。任何有关使其正确锁定的指导将不胜感激!当然,如果你也能解释一下我做错了什么/你的建议如何更有意义,这样我就可以自己写下来,那就太好了!

最佳答案

因为您当前的查询既不遵循隐式也不遵循显式 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 演示

关于php - 基于多对多表调用一张表的信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20038746/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com