簡體   English   中英

如何使用INNER JOIN更新3個表?

[英]How to update 3 tables with INNER JOIN?

我有3張桌子,看起來像這樣:

  1. 用戶:

    • ID
    • 名稱(字符串)
    • ageID(int)
    • descID(int)
  2. users_age:

    • ageID(int)
    • age_group(字符串)
  3. users_desc:

    • descID(int)
    • desc_text(字符串)

現在,我有一個“編輯”表單,該表單使用INNER JOIN在ageID和descID而不是ID的位置顯示相應的字符串列。

還有一個直接指向updateUser.php來更新數據的按鈕。 我知道我可以使用以下方式更新名稱:

$sql = "UPDATE users SET
        Name = '$uName',
        WHERE ID = '$uID'";

但是,當表單頁面將字符串列發送到updateUser.php文件時,如何使用age_group / desc_text等效ID中的ageID / descID的ID更新USERS表中的ageID / descID(INTEGER值)列?

我希望我的解釋不是很混亂!

如果表中的字符串是唯一的(應該是唯一的),則可以更新到SELECT語句的輸出

$sql = "UPDATE users
        SET ageID = (SELECT ageID FROM users_age WHERE age_group = '$uAgeString')
        WHERE ID = '$uID'";

您可以執行與其他表類似的操作。

但是-最好從網頁獲取ID。 通常,您可以通過設置選項標簽的value屬性來做到這一點:

<select name='uAgeID'>
  <option value='1'>Young</option>
  <option value='2'>Middling</option>
  <option value='3'>Old</option>
</select>

這樣,您可以擁有一個更簡單的SQL語句:

$sql = "UPDATE users
        SET ageID = $uAgeString
        WHERE ID = '$uID'";

暫無
暫無

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

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