通过SQL或PHP通过几个表递归SELECT

时间:2017-02-05 11:17:10

标签: php mysql

我有一个房地产项目,表格如下:

  1. apartment表有一个建筑物ID
  2. building表有一个社区ID
  3. neighborhood表有城市ID
  4. 现在,如果我想获得某个城市的所有公寓,那么最好的方法是什么? 我正在使用PHPMySQL,这是我尝试过的失败

    public static function getAllApartmentsInACity ($city_id) {
    
        $results = array();
        $db = DB::getInstance(); //My DB class nothing wrong here
        $n = self::getAllNeighborhoodsInACity($city_id); // returns an array of objects of all neighborhoods
        $b = array();
        $a = array();
    
        foreach ($n as $singleN) {
            $b[] = self::getAllBuildingsInANeighborhood($singleN->id); //returns an array of objects of all buildings
        }
    
        foreach ($b as $singleB) {
            echo $singleB->id . '-';
        }
    
        return $a;
    
    }
    

    毕竟,当Null从此函数返回时,我得到var_dump,假设我在表中有数据。 任何帮助将不胜感激

1 个答案:

答案 0 :(得分:0)

使用以下查询:

$query = "SELECT apartment.*
          FROM apartment
             JOIN building ON
                 building.id = apartment.building_id
             JOIN neighborhood ON
                 neighborhood.id = building.neighborhood_id
             JOIN city ON
                 city.id = neighborhood.city_id AND
                 city.id = 'SOME CITY ID'
         ";