php - 选择的列值不存在

标签 php mysql database opencart

我有这个 php 查询;

$sql = "SELECT * 
        FROM store AS s 
        LEFT JOIN setting as set ON (s.store_id = set.store_id)";
$sql .= " WHERE (set.key = 'config_template' OR set.key IS NULL)";    
$sql .= " ORDER BY url";

$query = $this->db->query($sql);

我想要做的是返回key等于“config_template”的所有行。但是,如果没有与“config_template”匹配的键,我仍然想返回该行,除非列 key 将为空。

我考虑过使用 NOT INNOT EXIST 但我不确定在这种情况下如何使用它们?

最佳答案

将键的条件移至 JOIN 条件应该可以解决问题:

SELECT * 
FROM store AS s 
  LEFT JOIN setting as set 
         ON s.store_id = set.store_id AND set.key = 'config_template'
ORDER BY url

关于php - 选择的列值不存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12470319/

相关文章:

mysql - 由于 JOINED 表的原因,显示的 SQL 行受到限制

php - 每个项目类别的 Ajax 到 PHP 返回计数

mysql - 我想选择不遵循 where 条件或 "except where condition"的行

mysql - 数据库如何循环行?

java - varchar 类型的 SymmetricDS 长度不能超过 N

php - 如何使用 PHP 或 Python 运行 WHOIS 查询?

php - 有一个 MySQL 数据库,PHP 表单不工作,但连接成功

php - 有人处理过多个中型表上的 ALTER TABLE 语句吗?

php - 提高 mysql 速度?

php - 使用 sprintf 在 php 中格式化数字右对齐