簡體   English   中英

PHP 連接表 mysql

[英]PHP Join tables mysql

所以我有兩張桌子:

表1 (銷售額)

  • ID
  • 標識
  • 日期
  • 地位

表 2 (用戶)

  • ID
  • 標識
  • 全名
  • Email

這就是我查詢值的方式:

<?php      
       $query = "SELECT * FROM sales WHERE status='OK' ORDER BY STR_TO_DATE(`date`, '%Y/%m/%d %H:%i:%s') DESC LIMIT 5";
           if ($result = $link->query($query)) {
                  $num_rows = 0;
                  while ($row = $result->fetch_assoc()) {
                      $num_rows++;
    
                      echo '<div class="my-box">';
                      echo "{$row['id']}";
                      echo "{$row['date']}";
                      echo "{$row['dbirth']}";
                      echo "{$row['email']}";
                      echo "{$row['ident']}";
                      echo '</div>';
                  }
                  $result->free();
              }
          ?>

現在,它回ident了該行的標識,但是為了顯示標識,我是為了顯示具有Fullname標識的全名。 我嘗試了類似SELECT * FROM sales LEFT JOIN users on sales.id = users.id ,但這並沒有給我Fullname 有小費嗎?

您的 SQL 似乎是錯誤的。

當你加入表時,這樣做。

SELECT column_name(s) FROM table1 INNER JOIN table2 ON table1.column_name = table2.column_name;

如果您正確加入表格,您將能夠檢索“全名”列。

我相信 Ident 字段將是用戶表中的主鍵和銷售表中的外鍵 如果是,這將返回所需的結果以及兩個表中列出的其他字段。

SELECT sales.ID AS sales_ID,sales.Ident AS Identity,Date,Status,Fullname,Email FROM sales
INNER JOIN users ON sales.Ident = users.Ident
WHERE status='OK'
ORDER BY STR_TO_DATE(`date`, '%Y/%m/%d %H:%i:%s') 
DESC LIMIT 5

如果日期字段更新為日期或日期時間,只需使用

ORDER BY DATE

為了更好的數據庫實踐:

  1. 您需要將日期字段數據類型更改為日期日期時間
  2. 您需要了解 RDBMS 中的主鍵和外鍵概念。
  3. 你需要在SQL中學習JOINS

暫無
暫無

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

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