簡體   English   中英

UPDATE SELECT查詢?

[英]UPDATE SELECT query?

我想更新表格中的一行。

UPDATE content SET title = $title, content = $content, email = ???

電子郵件是問題,我有用戶表中電子郵件地址的ID,但沒有地址,我想插入地址。

如何在同一UPDATE查詢中從用戶表中獲取電子郵件地址?

使用者:

id|email
 1 johnsmith@gmail.com

這是我的查詢查找插入內容的方式:

INSERT INTO content (title, content, email) SELECT $title, $content, email FROM users WHERE id = $id.

請注意,我知道vars需要轉義/安全性等內容,上面發布了一個清晰的示例。

像這樣簡單地使用

UPDATE content SET title = $title, content = $content,
email = (SELECT email FROM users WHERE id = $id)

為什么要復制內容表中的數據? 只需使用聯接即可顯示電子郵件地址:

SELECT c.title, c.content, c.author, u.email 
FROM content c 
LEFT JOIN users u 
    ON c.author = u.id 
WHERE c.id = 1

您如何知道要使用哪些用戶記錄?

假設您在內容表中有一個user_id字段,則可以在UPDATE上執行JOIN

UPDATE content INNER JOIN users ON content.user_id = users.id 
SET content.title = $title, 
content.content = $content,
content.email = users.email

暫無
暫無

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

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