Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/56.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/6.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
Php 如何创建一个奇特的mysql连接,它可以连接三个表,并检测一个表是否没有我的项_Php_Mysql_Join - Fatal编程技术网

Php 如何创建一个奇特的mysql连接,它可以连接三个表,并检测一个表是否没有我的项

Php 如何创建一个奇特的mysql连接,它可以连接三个表,并检测一个表是否没有我的项,php,mysql,join,Php,Mysql,Join,php mysql查询 我有多个链接表-我还有一个表,只有在存在特定条件时才创建和输入,所以我想将其添加到我的查询中,以避免需要通过数千次查询搜索来查找这种特殊情况 这是我目前的问题 $query = "SELECT a.UUID FROM contract a INNER JOIN geoPoint b ON a.customer_UUID = b.customerUUID WHERE b.garcom_UUID = '$garbCom' AN

php mysql查询 我有多个链接表-我还有一个表,只有在存在特定条件时才创建和输入,所以我想将其添加到我的查询中,以避免需要通过数千次查询搜索来查找这种特殊情况

这是我目前的问题

$query = "SELECT a.UUID FROM contract a 
        INNER JOIN geoPoint b ON a.customer_UUID = b.customerUUID
        WHERE b.garcom_UUID = '$garbCom'
        AND b.city_UUID = '$city'";
然后,我检查了返回的每个项目(以千为单位)

而不是所有这些,我只想让它成为一个查询-psedoo代码类似这样的东西

 $query = "SELECT a.UUID FROM contract a 
            INNER JOIN geoPoint b ON a.customer_UUID = b.customerUUID
            INNER JOIN contract_sales c ON a.UUID = c.contractUUID
            WHERE b.garcom_UUID = '$garbCom'
            AND b.city_UUID = '$city' AND c.DOESNOTEXIST";
这样我就不必返还数千美元,我只会返还合同销售表中还没有的那几笔,我可以继续我的生意


谢谢你的帮助

我认为这是一个左外连接问题

看看这个例子。您特别需要检查表中要查找缺少rof行的列中是否有null


我认为这是一个左外连接问题

看看这个例子。您特别需要检查表中要查找缺少rof行的列中是否有null


听起来好像
不存在
相关子查询就是您需要的:

$query = "SELECT a.UUID FROM contract a 
            INNER JOIN geoPoint b ON a.customer_UUID = b.customerUUID
            WHERE b.garcom_UUID = '$garbCom'
            AND b.city_UUID = '$city' 
            AND NOT EXISTS (SELECT 1 
                              FROM contract_sales c
                              WHERE c.contractUUID = a.UUID)";

听起来好像
不存在
您需要的是相关子查询:

$query = "SELECT a.UUID FROM contract a 
            INNER JOIN geoPoint b ON a.customer_UUID = b.customerUUID
            WHERE b.garcom_UUID = '$garbCom'
            AND b.city_UUID = '$city' 
            AND NOT EXISTS (SELECT 1 
                              FROM contract_sales c
                              WHERE c.contractUUID = a.UUID)";

只需检查带有
外部联接的
c行的
NULL

$query = "SELECT a.UUID FROM contract a 
        INNER JOIN geoPoint b ON a.customer_UUID = b.customerUUID
        LEFT OUTER JOIN contract_sales c ON a.UUID = c.contractUUID
        WHERE b.garcom_UUID = '$garbCom'
        AND b.city_UUID = '$city' AND c.contractUUID IS NULL ";

只需检查带有
外部联接的
c行的
NULL

$query = "SELECT a.UUID FROM contract a 
        INNER JOIN geoPoint b ON a.customer_UUID = b.customerUUID
        LEFT OUTER JOIN contract_sales c ON a.UUID = c.contractUUID
        WHERE b.garcom_UUID = '$garbCom'
        AND b.city_UUID = '$city' AND c.contractUUID IS NULL ";

表结构是什么样的,它们是如何关联的?表结构是什么样的,它们是如何关联的?工作非常完美,比其他解决方案少得多,谢谢!工作完美,比其他解决方案少得多,谢谢!