首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >单个mysqli查询中的多个select连接联合

单个mysqli查询中的多个select连接联合
EN

Stack Overflow用户
提问于 2014-08-01 02:56:35
回答 1查看 1.2K关注 0票数 0

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

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

基本上,我希望获得城市和州的名称,而不是I。

无论是城市还是州,它们中只有一个可以成功地给出我的名字,而另一个只会给出id。

我想知道城市和州的名字。我如何才能做到这一点?

代码语言:javascript
复制
         <?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']; ?>
EN

回答 1

Stack Overflow用户

发布于 2014-08-01 03:16:42

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

代码语言:javascript
复制
 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
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25066832

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档