我试图在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、电影中的演员、他们所穿的衣服的项目以及它的品牌。
$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";但是,当我试图从请求表中回显“内容”和“请求日期”时。数据根本不出现。我也无法从user表获取信息,例如用户通过添加以下联接来记录请求;$query =“选择r.requestid,m.,a.,i,b.,u.* u.userid = r.userid上的内部连接用户u”
请指点?
发布于 2011-08-17 21:33:43
你不是SELECT在那些领域。现在,您只需要从SELECT表中提取r.requestid。您需要添加对要回显的每个字段的引用。
至于用户加入,您似乎只是加入了错误的领域。您需要加入u.userid = r.userid。现在,您正在加入不存在的u.itemid。您还需要更改SELECT语句以报告所需的字段(例如,SELECT ... , u.name, u.email)。
顺便提一下,在可能的情况下,您应该避免SELECTing table.*。当您将字段添加到表中时,这可能会导致中断,但在处理查询结果时不考虑此问题。您应该尽量显式化,并且只对想要使用的字段进行SELECT -例如,SELECT users.name, users.email而不是执行SELECT users.*。
https://stackoverflow.com/questions/7099715
复制相似问题