我有一个有效的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
表格,这怎么会有效?
答案 0 :(得分:0)
AFAIK,这是纯MySQL。 PHP与否并不会发挥作用。
首先要了解的是隐式连接: Explicit vs implicit SQL joins 这种理解应解决至少一半的问题。
其次,我绝不会在没有充分理由的情况下对SELECT *
进行编码(并且只有少数几个)。选择你需要的列而不是全部列出更有意义,即使你需要当前所有的列,如果你以后使用数据库模型,可能会有更多(或更少!!)列数据库,如果您没有明确列出代码,则很难检测到您的代码需要更新。
对于其他人,我一步一步地慢慢构建我的SQL查询。这有助于调试您的查询esp。因为你有实际的表和一些样本数据...... [那应该解决你问题的另一半]