PHP / MySQL从多个表中选择记录

时间:2017-02-14 23:10:56

标签: mysql

我有一个有效的MySQL声明 - 我可以获得所请求的记录 - movies.*& groups.name

    $stmt= $mysqli->query("SELECT DISTINCT ebooks.*, groups.name FROM ebooks 
INNER JOIN ebooks_groups ON ebooks.uuid = ebooks_groups.ebookuuid 
INNER JOIN groups_users ON ebooks_groups.groupuuid = groups_users.groupuuid 
INNER JOIN groups ON groups_users.groupuuid = groups.uuid 
WHERE useruuid=".$get_useruuid." 
ORDER BY groups.name");

1 / 但是我需要从groups表中抓取另一列 - 即groups.uuid

我试过

SELECT DISTINCT movies.*, groups.* FROM movies, groups 

&安培;

SELECT DISTINCT movies.*, groups.name, groups.uuid FROM movies, groups 

但它没有检索到任何记录。

2 / 然后我又看了一下原始代码 - ... FROM movies ... - 如果我没有选择FROM movies, groups表格,这怎么会有效?

1 个答案:

答案 0 :(得分:0)

AFAIK,这是纯MySQL。 PHP与否并不会发挥作用。

首先要了解的是隐式连接: Explicit vs implicit SQL joins 这种理解应解决至少一半的问题。

其次,我绝不会在没有充分理由的情况下对SELECT *进行编码(并且只有少数几个)。选择你需要的列而不是全部列出更有意义,即使你需要当前所有的列,如果你以后使用数据库模型,可能会有更多(或更少!!)列数据库,如果您没有明确列出代码,则很难检测到您的代码需要更新。

对于其他人,我一步一步地慢慢构建我的SQL查询。这有助于调试您的查询esp。因为你有实际的表和一些样本数据...... [那应该解决你问题的另一半]