Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/78.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
SQL查询:获取全部<;ParentTableRecord>;s与a不匹配<;儿童>;具有属性值=<;价值>;_Sql - Fatal编程技术网

SQL查询:获取全部<;ParentTableRecord>;s与a不匹配<;儿童>;具有属性值=<;价值>;

SQL查询:获取全部<;ParentTableRecord>;s与a不匹配<;儿童>;具有属性值=<;价值>;,sql,Sql,假设我有一个表,[所有者],只有一个“名称”。然后我有一张桌子[狗],上面有一个“名字”,“颜色”和一个“主人名” 样本数据: Owner: <Name: Joe>, <Name: Sue> Dog: <Name: Rover, LeashColor: Red, OwnerName: Joe>, <Name: Pup, LeashColor: Green, OwnerName: Joe>, <Name: Spot, Lea

假设我有一个表,[所有者],只有一个“名称”。然后我有一张桌子[狗],上面有一个“名字”,“颜色”和一个“主人名”

样本数据:

Owner: <Name: Joe>, <Name: Sue>
Dog: <Name: Rover, LeashColor: Red, OwnerName: Joe>,
     <Name: Pup, LeashColor: Green, OwnerName: Joe>,
     <Name: Spot, LeashColor: Purple, OwnerName: Sue>,
     <Name: Lassie, LeashColor: Yellow, OwnerName: Sue>
所有者:,
狗:,
,
,
我想要一个SQL查询,它可以获取所有没有狗名的所有者。例如,当输入=“Rover”时,查询将返回Sue,因为她没有名为Rover的狗,但Joe有

如果可能的话,最好有一个查询,让所有的主人都没有狗的名字,但是如果他们有狗的名字,如果狗的皮带颜色是

因此,通过输入=“漫游者”和=“红色”,Joe和Sue都将返回(Sue没有漫游者,Joe有一个带红色皮带的漫游者)。但是,如果输入为“漫游者”、“绿色”,则只返回Sue(Sue没有漫游者,Joe有漫游者,颜色不是绿色)


我对这件事困惑了一段时间。如果有任何提示,我将不胜感激。

使用
NOT IN
查找不在给定子查询中的记录:

SELECT * 
FROM Owner
WHERE Name NOT IN
(SELECT Name from Dog 
 WHERE Name = @dogName)
可以对第二个结果使用左连接:

SELECT o.* 
FROM Owner o
LEFT JOIN Dog d
    ON o.Name = d.OwnerName
    AND d.Name = @dogName
WHERE d.Name IS NULL  // no dog by that name
     OR d.LeashColor = @leashColor  // dog by than name with the right color leash