簡體   English   中英

使用共享字段(mysql和php)從兩個不同的表打印數據

[英]Print data from two different tables with a shared field (mysql and php)

我正在嘗試從兩個不同的表中提供數據,其中有一個共享字段:在table1中,我有許多字段,其中一個是員工Position ,這是一個數字。 在table2中我有兩個字段: EmpPos (等於table1中的Position )和PosName 現在,我想從table1打印所有員工的信息,但不是打印Position (這是一個數字),我想從table2打印其關聯的PosName 我的以下查詢無效!

$sql ="SELECT * FROM table1, table2 WHERE table1.Position=table2.EmpPos";
$result = $conn->query($sql);

if ($result->num_rows > 0) {

    <tr>
        <th>Name</th>
        <th>Email</th>
        <th>Position Name</th>
        <th>phoneExt</th>

    </tr>";

    while($row = $result->fetch_assoc()) {
        echo "<tr>";
        echo "<td>" .$row['table1.FirstName'] ." " .$row['table1.LastName'] ."</td>";
        echo "<td>" .$row['table1.Email'] ."</td>";
        echo "<td>" .$row['table2.PosName'] ."</td>";
        echo "<td>" .$row['table1.phoneExt'] ."</td>";
        echo"</tr>";
}

提前致謝

問題是您沒有定義表之間的任何關系。 所以你應該使用INNER或LEFT JOIN:

SELECT * FROM Table1 m INNER JOIN
Table2 k ON k.EmpPos = m.Position

或者以下應該做:

SELECT * FROM Table1 m LEFT JOIN
Table2 k ON k.EmpPos = m.Position

由於您有一個外鍵(共享字段),因此使用連接很容易也很明顯。

使用內部聯接

SELECT * FROM table1 tab1 INNER JOIN table2 tab2 ON tab1.position = tab2.EmpPos

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM