【问题标题】:multiple select join union in a single mysqli query单个 mysqli 查询中的多个选择连接联合
【发布时间】:2014-09-23 20:47:31
【问题描述】:

我正在尝试将三个表的左连接放在一个查询中。

我可以一次让一个 select join 语句工作,但是当我想让两个 select 语句在一个查询中工作时,它就不能正常工作了。

基本上,我想获取城市和州的名称,而不是 id。

无论是城市还是州,只有一个可以工作并成功给我这个名字,但另一个只会给我 id。

我正在尝试获取城市和州的名称。我怎样才能做到这一点?

         <?php  
          if($state > 0 && $city  > 0 && $area < 1 ){

       $sqla= "(SELECT listing.*, state.state_name as state FROM listing LEFT JOIN state ON listing.state = state.id) UNION (SELECT listing.*, city.city_name as city FROM listing LEFT JOIN city ON listing.city = city.id)";

          $sql=mysqli_query($con,$sqla);  


            if (mysqli_num_rows($sql) > 0) {
             while($row = mysqli_fetch_array($sql)){ ?>
          <?php echo $row['id']; ?>
       <?php echo $row['state']; ?>
       <?php echo $row['city']; ?>

【问题讨论】:

    标签: php select join mysqli union


    【解决方案1】:

    这可能是因为您错误地使用了 UNION 语句。我猜你想使用另一个左连接,这样你就有一组来自列表的所有行与 state_name 关联(这里的城市是列表中的城市列)和另一组来自第二个查询的列表中的所有行,同样是 state 字段是列表中的状态列。你应该这样做:

     SELECT listing.*, state.state_name, city.city_name FROM listing LEFT JOIN state ON listing.state = state.id LEFT JOIN city ON listing.city = city.id
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-09-30
      • 1970-01-01
      相关资源
      最近更新 更多