Mysql 查找所有值';x';不包含';y';
我必须提供所有活动的Mysql 查找所有值';x';不包含';y';,mysql,sql,Mysql,Sql,我必须提供所有活动的站点的列表,这些站点不包含域 SELECT companies.name,sites.name,sites.association FROM companies JOIN sites ON sites.company = companies.id JOIN domains ON domains.site != sites.id WHERE sites.is_deleted = 0 AND domains.is_primary = 1 AND domains.is_del
站点的列表,这些站点不包含域
SELECT companies.name,sites.name,sites.association
FROM companies JOIN sites ON sites.company = companies.id
JOIN domains ON domains.site != sites.id WHERE sites.is_deleted = 0
AND domains.is_primary = 1 AND domains.is_deleted = 0
我加入的条件是站点
的主键与域.site
字段中的任何内容都不对应。然而,我知道我没有得到我需要的输出,因为我知道我想要的数量或行,并且我正在生成更多
我正在使用的te模式的uml图是(有点古怪)。如果您试图查找没有主域的站点,这可能会提供您所需要的。它使用左连接并检查域记录是否为空/缺失
SELECT companies.name,
sites.name,
sites.association
FROM companies
JOIN sites ON sites.company = companies.id
LEFT JOIN domains ON domains.site = sites.id
AND domains.is_primary = 1
AND domains.is_deleted = 0
WHERE sites.is_deleted = 0
AND domains.id IS NULL
也可以考虑使用不存在< /P>
SELECT companies.name,
sites.name,
sites.association
FROM companies
JOIN sites ON sites.company = companies.id
WHERE sites.is_deleted = 0
AND NOT EXISTS (
SELECT 1
FROM domains d
WHERE d.site = sites.id
AND d.is_primary = 1
AND d.is_deleted = 0
)
这里有一个sql FIDLE供您测试假设您试图查找没有主域的站点,那么这可能会提供您所需的内容。它使用左连接并检查域记录是否为空/缺失
SELECT companies.name,
sites.name,
sites.association
FROM companies
JOIN sites ON sites.company = companies.id
LEFT JOIN domains ON domains.site = sites.id
AND domains.is_primary = 1
AND domains.is_deleted = 0
WHERE sites.is_deleted = 0
AND domains.id IS NULL
也可以考虑使用不存在< /P>
SELECT companies.name,
sites.name,
sites.association
FROM companies
JOIN sites ON sites.company = companies.id
WHERE sites.is_deleted = 0
AND NOT EXISTS (
SELECT 1
FROM domains d
WHERE d.site = sites.id
AND d.is_primary = 1
AND d.is_deleted = 0
)
这里有一个sql FIDLE供您测试请不要看图片,谢谢。请不要看图片,谢谢。域.id
字段不包含任何空值,这是此查询让我发疯的原因。域.id
字段不包含任何空值,这也是此查询让我发疯的原因之一