1

SQL クエリにエラーがあります。

mysql_query("
SELECT * from houses 
WHERE pcode=(
   SELECT outcode,(SQRT((pow((`x` -$x),2)) + (pow((`y` -$y),2)))) AS `distance` 
   FROM hwz_postcodes 
   WHERE `x` BETWEEN $xnegexp AND $xplusexp 
   AND `y` BETWEEN $ynegexp AND $yplusexp 
   ORDER BY `distance`
)");

基本的に 2 つのテーブルがあり、1 つのテーブルには対応する郵便番号を持つ家屋のリストがあり、もう 1 つのテーブルには郵便番号のリストがあります。私のクエリは基本的に、郵便番号を近くの郵便番号と比較し、近くの家を表示します。

サブクエリは、最も近い郵便番号を正常に検出し、それらを距離順にリストします。これをwhileループに入れて、その中で別のクエリを実行して家のテーブルを調べることができますが、効率的ではありません。

誰でもクエリの解決策を提案できますか?最初のサブクエリの結果は距離で並べ替える必要があることを思い出してください。距離は示されている平方根の式によって規定されています。

前もって感謝します!!

4

1 に答える 1