Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 查找所有值';x';不包含';y';_Mysql_Sql - Fatal编程技术网

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
字段不包含任何空值,这也是此查询让我发疯的原因之一