Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.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子查询转换_Mysql_Variables_Join_Subquery - Fatal编程技术网

MySQL子查询转换

MySQL子查询转换,mysql,variables,join,subquery,Mysql,Variables,Join,Subquery,对于下面的查询,我需要将其重新写入,以便使用一个变量来代替“parcel_number”值 因为我目前使用的是子查询,所以我不能使用(据我所知)可以传递的变量。我找了好几个小时,找不到子查询不能将变量传递给它们的确切原因,所以我认为这是“否” 我对此非常生疏,所以如果我下面的代码效率低下或其他原因,请尽管笑。我只是非常需要一些帮助。请告知: /*选择满足以下条件的所有记录*/ select * from master_township_uniformity where living_area_s

对于下面的查询,我需要将其重新写入,以便使用一个变量来代替“parcel_number”值

因为我目前使用的是子查询,所以我不能使用(据我所知)可以传递的变量。我找了好几个小时,找不到子查询不能将变量传递给它们的确切原因,所以我认为这是“否”

我对此非常生疏,所以如果我下面的代码效率低下或其他原因,请尽管笑。我只是非常需要一些帮助。请告知:

/*选择满足以下条件的所有记录*/

select *
from master_township_uniformity
where living_area_square_foot
between @low_range and @high_range
AND
neighborhood_code =
(
select neighborhood_code
from master_township_uniformity
where parcel_number = '0621115027'
)
AND
full_and_half_bath = 
(
select full_and_half_bath
from master_township_uniformity
where parcel_number = '0621115027'
)
/*在“邻域代码”相同的地方拉入属性*/

select *
from master_township_uniformity
where living_area_square_foot
between @low_range and @high_range
AND
neighborhood_code =
(
select neighborhood_code
from master_township_uniformity
where parcel_number = '0621115027'
)
AND
full_and_half_bath = 
(
select full_and_half_bath
from master_township_uniformity
where parcel_number = '0621115027'
)
/*在“全浴和半浴”相同的情况下引入属性*/

select *
from master_township_uniformity
where living_area_square_foot
between @low_range and @high_range
AND
neighborhood_code =
(
select neighborhood_code
from master_township_uniformity
where parcel_number = '0621115027'
)
AND
full_and_half_bath = 
(
select full_and_half_bath
from master_township_uniformity
where parcel_number = '0621115027'
)

通过使用别名连接到同一个表,我们可以过滤结果并消除子查询。我相信这应该对你有用

mtu-是您原来的master_Town_统一表吗

mtuParcel-是该表的副本,可用于按地块编号进行过滤

我们将邻域_代码和full_和half_bath字段上的两个表连接起来,以仅过滤匹配值的结果

SELECT mtu.*
FROM master_township_uniformity AS mtu
  INNER JOIN master_township_uniformity AS mtuParcel
  ON mtu.neighborhood_code = mtuParcel.neighborhood_code
  AND mtu.full_and_half_bath = mtuParcel.full_and_half_bath
WHERE mtuParcel.parcel_number = '0621115027'
  AND mtu.living_area_square_foot
    BETWEEN @low_range AND @high_range 

你的查询应该完成什么?Rusty?更新连接。感谢@PM77-1重新格式化我的问题。我是新来的,完全忽略了这个选项。你是个救生员@Darren。感谢您将其分解,使其相对容易理解。在这段时间里,我一直选择子查询而不是联接,因为它们更容易阅读。但是现在我对你的代码有了更好的理解,你的代码工作起来很有魅力。再次感谢!