首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >来自多个表的mysqli查询

来自多个表的mysqli查询
EN

Stack Overflow用户
提问于 2016-11-08 18:20:35
回答 1查看 964关注 0票数 0

我有一个android是用PHP编写的,大约有三个表,我们的开发人员正在进行查询,并将结果放在json中。但是,当其他表中除了返回空的用户名之外没有任何行时,我就有问题了。但是,用户名已经在一个表中可用。它的查询如下

代码语言:javascript
复制
<?php

// Grab User submitted information
$UID = $_POST["UID"];

// Connect to the database
$con = mysqli_connect("localhost","myid","mypass", "mydb");
// Make sure we connected succesfully
if(! $con)
{
    die('Connection Failed'.mysqli_connect_error());
}

// mysql_select_db("tabdevel_yourdb",$con);
$result = mysqli_query($con,"SELECT l.username, 
                                    q.quote_id,q.status,q.credit,q.QOD,
                                    w.Total,w.Completed,w.Withdrawl,w.Credit 
                                    From quotes q, 
                                        login_details l,
                                        user_details w 
                                    WHERE l.UID = q.UID
                                      AND l.UID = w.UID  
                                      AND l.UID = '$UID' ");

 //echo $result;
$json = array();
if($result==false)
{
    die(mysqli_error());
}else
{
    if(mysqli_num_rows($result))
    {

        while($row=mysqli_fetch_assoc($result)){
            $json['Details'][]=$row;
        }
    }
}

$json_output1 = json_encode($json);
echo $json_output1;

?>

我的数据库结构如下

login_details已提交:UID、用户名、电子邮件、手机号码、密码、图像。

报价已提交:quote_id、报价、状态、信用、UID、QOD、quote_date

user_details已提交:user_details_id,UID,信用卡,提款,总计,已完成

我们错过了什么?谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-11-08 18:26:05

你要找的是 keyword。目前,您正在列出这样的表:

代码语言:javascript
复制
FROM quotes q, login_details l,user_details w

它“工作”,但执行您无法控制的隐式联接类型。连接类型似乎是INNER JOININNER JOIN要注意的关键是,如果任何给定的表都没有匹配的记录,则省略整个结果记录。

相反,听起来你想要更像LEFT OUTER JOIN的东西。这方面的语法更类似于:

代码语言:javascript
复制
FROM quotes q
LEFT OUTER JOIN login_details l
  ON q.some_column = l.some_column
LEFT OUTER JOIN user_details w
  ON q.another_column = w.another_column

现在,我不知道你要加入的列,所以我只是把占位符放在那里。但希望你能明白。这个语法允许您显式地告诉数据库如何加入表,而不是隐式地让数据库“想出答案”。

这里关于LEFT OUTER JOIN的关键是,如果要连接的表中没有匹配的记录,则仍然包括原始表中的记录。(尽管使用联接表中的NULL值)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40493879

复制
相关文章

相似问题

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