作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有这个sql查询
SELECT entries.*, categories.name as name_cat, areas.name as name_area, sub_categories.name as name_sub
FROM entries, areas, sub_categories, categories
WHERE sub_categories.id= entries.id_sub
AND **areas.id = entries.area**
AND categories.id = entries.id_cat
ORDER BY entries.id DESC
效果很好,但我在 entries.area 中确实有一些空白字段 .. 结果没有出现..
我尝试对查询进行一些更改,但有些会给我结果,而有些会给出较少的结果,但没有给我正确的答案
最佳答案
已经是2015年了。放弃连接运算符的老式逗号语法并使用 JOIN
关键字来代替已经过去了。使用 JOIN
关键字,我们可以将谓词(条件)从 WHERE
子句移动到 ON
子句。
使用 JOIN
关键字,我们可以通过包含其他关键字来指定“外部联接”。
例如,包含关键字 LEFT
(在 JOIN
之前)指定查询应该从表的“左侧”返回行,即使不存在匹配行也是如此在右侧的表格中。
SELECT entries.*
, categories.name AS name_cat
, areas.name AS name_area
, sub_categories.name AS name_sub
FROM entries
LEFT
JOIN areas
ON areas.id = entries.area
LEFT
JOIN sub_categories
ON sub_categories.id= entries.id_sub
LEFT
JOIN categories
ON categories.id = entries.id_cat
WHERE 1=1
ORDER BY entries.id DESC
行 WHERE 1=1
可以省略...我包含它只是为了显示 WHERE
子句的位置,如果我们需要的话。
关于mysql - 使用 AND OR 运算符的 SQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31100637/
我是一名优秀的程序员,十分优秀!