在联接的sql序列中包括“WHERE”

在联接的sql序列中包括“WHERE”,sql,where,Sql,Where,我有以下工作sql序列: SELECT *, films.category AS filmCategory FROM ( SELECT * FROM films ORDER BY `unique` ASC LIMIT 6, 4) films LEFT OUTER JOIN items ON items.unique = films.ref ORDER BY films.unique ASC 这很好,可以从数据库中选择正确的四个元素。然而,我有一些规则,

我有以下工作sql序列:

SELECT *, films.category AS filmCategory
FROM ( SELECT *
       FROM films
       ORDER BY `unique` ASC
       LIMIT 6, 4) films
LEFT OUTER JOIN items ON items.unique = films.ref
ORDER BY films.unique ASC
这很好,可以从数据库中选择正确的四个元素。然而,我有一些规则,我检查在哪里使用,我不能工作。我已经做了以下工作:

SELECT *, films.category AS filmCategory
FROM ( SELECT *
       FROM films
       ORDER BY `unique` ASC
       LIMIT 6, 4) films
LEFT OUTER JOIN items ON items.unique = films.ref
WHERE films.youtube IS NOT NULL AND films.youtube <> ''
ORDER BY films.unique ASC
其中唯一的区别是添加了带有where子句的行。但这不起作用-事实上,它与以前没有区别,但返回相同的行

如何在sql语句中正确包含这些WHERE规则


films.youtube行不为NULL,films.youtube正在检查特定单元格是否为空。这是在

的帮助下完成的。也许您正在子查询中查找where子句?这样,限制将在where子句之后应用

因为null>不是真的,而是未知的。或者更具可读性:

WHERE length(films.youtube) > 0

它以什么方式不起作用?它是否返回具有NULL或空值的films.youtube行?更简单的是:WHERE films.youtube>
WHERE films.youtube IS NOT NULL AND films.youtube <> ''
WHERE films.youtube > ''
WHERE length(films.youtube) > 0