如何从连接表中返回数据

时间:2016-11-02 16:31:07

标签: php mysql

这背后的目的是让我能够从通过另外两个表的INNER JOIN形成的表中提取数据。

我已成功将关税名称映射到用户名。但我想要做的是能够从这个通过INNER JOIN在android studio的文本字段中创建的新表中返回数据。

我目前主要担心的是找出能够返回数据的正确查询。我试过研究这个,但没有运气/ 我有2个数据库。 useraccount 数据库和关税数据库。

useraccount数据库由以下列组成:

ID 名称

EmailAddress的
邮编

******中国

密码
确认密码 关税

我的关税数据库包含以下列:

ID 名称

我已经使用INNER JOIN加入了这两个表,并将用户名列与关税名称列相关联,基本上,我最终得到了这样一个表:

用户名|关税

以下是代码:

$query = "SELECT useraccount.Username, tariff.Name as tariffs
FROM useraccount
INNER JOIN tariff ON useraccount.tariffs = tariff.id";  

    $result = mysqli_query($conn,$query);
    if($result->num_rows){
        while($row = $result ->fetch_object()){
            echo "{$row->Username} ({$row->tariffs}) <br>";
        }
    }else{
        echo "No results";

    }


    $query2 = "SELECT";
    $result2 = mysqli_query($conn,$query2);

问题:

如何访问结果集的列?

This image shows the result of the execution of the PHP file

2 个答案:

答案 0 :(得分:1)

将两个表连接在一起不会创建第三个表,但会从两个表的组合记录中创建结果集。在您的代码示例中,您已经可以访问useraccounts和关税表中包含的所有数据。要访问此数据,只需修改select语句,使其引用所需的列。您也可以使用&#39; *&#39;通配符以包含结果集中的所有列。

 // Using a wildcard to get all useraccount data. 
$query = "SELECT useraccount.*, tariff.Name as tariffs
FROM useraccount
INNER JOIN tariff ON useraccount.tariffs = tariff.id"; 

$result = mysqli_query($conn,$query);
if($result->num_rows){
    while($row = $result ->fetch_object()){      
        // Reference any user data you want.
        echo "{$row->Username} {$row->EmailAddress} {$row->PostCode} ({$row->tariffs}) <br>";
    }
}

答案 1 :(得分:-1)

您需要加入关税ID上的用户帐户ID:

 $servername = "localhost";
 $username = "username";
 $password = "password";
 $dbname = "myDB";

 // Create connection
 $conn = new mysqli($servername, $username, $password, $dbname);
 // Check connection
 if ($conn->connect_error) {
   die("Connection failed: " . $conn->connect_error);
 } 

 $sql = "SELECT useraccount.Username, tariff.Name FROM useraccount INNER JOIN tariff ON useraccount.id = tariff.id";
 $result = $conn->query($sql);

 if ($result->num_rows > 0) {
      // output data of each row
     while($row = $result->fetch_assoc()) {
    echo "Username: " . $row["username"]. " - Tarrif: " . $row["name"]. "<br>";
}
} else {
    echo "0 results";
}
$conn->close();