php - 查询 6 个表无法从主表回显信息

标签 php mysql

我想在我的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 表中SELECTing r.requestid。您需要添加对要回显的每个字段的引用。

就用户加入而言,您似乎只是在错误的领域加入。您需要加入 u.userid = r.userid。现在,您正在加入不存在的 u.itemid。您还需要更改您的 SELECT 语句以报告您想要的字段(例如 SELECT ... , u.name, u.email)。

顺便说一句,您应该尽可能避免SELECTing table.*。当您向表中添加字段但在处理查询结果时不考虑这一点时,这可能会破坏事情。您应该尽量明确,SELECT 只选择您要使用的字段 - 例如SELECT users.name, users.email 而不是 SELECT users.*

关于php - 查询 6 个表无法从主表回显信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7099715/

相关文章:

javascript - 如何从特定行获取数据?

php - 如何正确配置 magento 以在订单通知期间包含文件上传链接?与 joomla magebridge 组件集成

java - mysql jdbc 字段列表中的未知列 'startdate'

MYSQL如何选择另一个表的WHERE EXISTS条件和主表的正常WHERE条件的数据?

php - 为什么 PHP 使用 Zend_Amf 将数字 16 转换为 float(6.1026988574311E_320)

php - 使用 Gulp 和 Livereload 创建一个运行 PHP 的服务器

phpmyadmin - 将文件保存到磁盘

php - 如何在mysql中插入日期和时间并查看

mysql - 无法使用带有 sinatra 的数据映射器保存表单数据

MySQL-将字符串添加到文本列