几天前,我在这里询问了一个解决方案来检索从两个不同表中获取值的查询。这个问题问得相当快,感谢这里这个很棒的社区...但继续:我使用了查询并且它工作得很好,但我不明白它。查询如下:
SELECT e.*, u.Username
FROM Entries AS e
LEFT JOIN Users AS u ON u.ID = e.User
WHERE e.Category = 'SomeCategory'
LIMIT 0, 10
谁能解释一下查询的每个“步骤”的作用吗? “WHERE”、“LIMIT”、“SELECT”和“FROM”我知道,但其他对我来说相当复杂。
谢谢
编辑:LIMIT 10,0
更改为 LIMIT 0,10
。我写错了...抱歉。
最佳答案
SELECT e.*, u.Username
FROM Entries AS e
LEFT JOIN Users AS u ON u.ID = e.User
WHERE e.Category = 'SomeCategory'
LIMIT 10, 0; -- are you sure about it???
它是如何工作的:
- 获取
Entries
表并将其“重命名”为e
(添加别名) - 获取
Users
表并将其“重命名”为u
- 根据
Entries
中的ID
列和Users
中的User
连接(外部)两个表 (对于用户设置的不匹配行NULL
) - 过滤掉
Category
列中的值等于'SomeCategory'
的记录 - 跳过前 10 行并获取 0 行
- 显示
Entries
中的每一列以及Users
中的Username
列
警告
如果没有显式的ORDER BY
,您可以在执行之间获得不同的结果集。为什么要返回空结果集LIMIT offset, row_count
?
编辑:
编辑后 5. 应为跳过前 0 行并获取 10 行
LIMIT 0, 10
与 LIMIT 10
关于php - 解释 MySQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33721438/