简体   繁体   English

基于第一个的第二个 sql 查询

[英]second sql query based on the first one

i want to take the result of an sql query "user_id"and search using it in in another query in another table for example :我想获取 sql 查询“user_id”的结果并在另一个表的另一个查询中使用它进行搜索,例如:

main query select * from tracker second query: take the id from the first query to replace it with the name of the user found in another table "user table".主查询 select * from tracker 第二个查询:从第一个查询中获取 id 以将其替换为在另一个表“user table”中找到的用户名。 something like : select user_name from vtiger_users where id = $row["id"]类似于:从 vtiger_users 中选择 user_name where id = $row["id"]

here is my code below下面是我的代码

    <?php
    $servername = "localhost";
    $username = "x";
    $password = "xyz";
    $dbname = "dbname";

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

$sql = "SELECT id, module, whodid,changedon FROM vtiger_modtracker_basic";
$result = $conn->query($sql);


if ($result->num_rows > 0) {


    echo "<table style='float: left'><tr><th>ID</th><th>Module</th><th>Who Did</th><th>Time Of Action</th></tr>";
    // output data of each row

    while($row = $result->fetch_assoc()) {
        $user_id=$row["id"];
        $username_sql="SELECT user_name FROM vtiger_users where id=".$user_id." ";
        $result_username=$conn->query($username_sql);
        $row2 = $result_username->fetch_assoc();


        echo "<tr><td>".$row["id"]."</td><td>".$row["module"]."</td><td>".$row2["user_name"]."</td><td>".$row["changedon"]."</td></tr>";




        //echo "<p>".$row2["user_name"]."</p>"





        //echo $row2["user_name"];


    }
    echo "</table>";
} else {
    echo "0 results";
}
$conn->close();
?>

I guess you should use whodid column when you set $user_id = $row['whodid'] or you can use JOIN query.我想您应该在设置$user_id = $row['whodid']时使用whodid列,或者您可以使用 JOIN 查询。 It will return you user_name from vtiger_users table.这将返回user_namevtiger_users表。

SELECT
    a.id,
    a.module,
    a.whodid,
    a.changedon 
    b.user_name
FROM vtiger_modtracker_basic a
JOIN vtiger_users b ON a.whodid = b.id

谢谢大家,那个查询为我完成了工作

SELECT vtiger_modtracker_basic.id, vtiger_modtracker_basic.module, vtiger_modtracker_basic.whodid ,vtiger_modtracker_basic.changedon ,vtiger_users.user_name FROM vtiger_modtracker_basic ,vtiger_users where vtiger_modtracker_basic.whodid = vtiger_users.id 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM