gpt4 book ai didi

mysql - 使用 AND OR 运算符的 SQL 查询

转载 作者:行者123 更新时间:2023-11-29 01:39:01 24 4
gpt4 key购买 nike

我有这个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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com