我试图在我的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 |
使用以下查询我可以显示例如,在requesttid = 1的情况下,我可以看到请求中的电影,电影中的演员,他们穿着的服装项目及其品牌。
$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
请指教?
答案 0 :(得分:1)
你不是SELECT
这些字段。现在,您只是SELECT
表r.requestid
requests
u.userid = r.userid
。您需要添加对要回显的每个字段的引用。
就用户加入而言,您似乎只是加入了错误的字段。您需要加入u.itemid
。现在,你加入了SELECT
,这是不存在的。您还需要更改SELECT ... , u.name, u.email
语句以报告所需的字段(例如SELECT
)。
顺便说一句,你应该尽可能避免table.*
SELECT
。当您向表中添加字段但在处理查询结果时不考虑该字段时,这可能会中断。您应该尝试尽可能明确,SELECT users.name, users.email
只显示您要使用的字段 - 例如SELECT users.*
而不是{{1}}。