我想在我的mysql数据库中查询6个独立的表,结构如下;
item
itemitemid | item | description | brand | date | time | path |
actor
actoractorid | name | actorthumb | bio |
brand
brandbrandid | brandname | description | image |
movie
moviemovieid | title | genre | year | moviethumb | synopsis|
users
userid | name | surname | email | password |
request
requestid | userid | itemid | brandid | movieid | actorid | content | requestdate |
例如,使用以下查询,我可以在 requestid=1 的位置显示我可以在请求中看到电影、电影中的 Actor 、他们穿的衣服及其品牌。
$requestid = mysql_real_escape_string($_GET['requestid']);
$query = "select r.requestid, m.*, a.*, i.*, b.*
FROM request r INNER JOIN movie m ON m.movieid = r.movieid
INNER JOIN actor a ON a.actorid = r.actorid
INNER JOIN item i ON i.itemid = r.itemid
INNER JOIN brand b ON b.brandid = r.brandid
WHERE r.requestid = $requestid";
但是,当我尝试从请求表中回显“内容”和“请求日期”时。数据根本就没有出现。我也无法从用户表中获取信息,例如用户通过添加以下连接来记录请求; $query = "select r.requestid, m., a., i., b., u.* INNER JOIN 用户 u ON u.userid = r.userid
请指教?
最佳答案
您没有SELECT
那些字段。现在,您只是从 requests
表中SELECT
ing r.requestid
。您需要添加对要回显的每个字段的引用。
就用户加入而言,您似乎只是在错误的领域加入。您需要加入 u.userid = r.userid
。现在,您正在加入不存在的 u.itemid
。您还需要更改您的 SELECT
语句以报告您想要的字段(例如 SELECT ... , u.name, u.email
)。
顺便说一句,您应该尽可能避免SELECT
ing table.*
。当您向表中添加字段但在处理查询结果时不考虑这一点时,这可能会破坏事情。您应该尽量明确,SELECT
只选择您要使用的字段 - 例如SELECT users.name, users.email
而不是 SELECT users.*
。
关于php - 查询 6 个表无法从主表回显信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7099715/