[英]Retrieve the last entry in the user table
我想獲取兩個用戶的id
以將它們插入到表的from_user_id
和to_user_id
列中。
這是我嘗試過的:
INSERT INTO message(from_user_id, to_user_id, text, created_at)
SELECT user.id, user.id, "selam", created_at
FROM user WHERE username = "admin"
FROM user WHERE username = "user_id"
我如何將用戶表中的最后一個用戶 select 作為收件人?
SQL
SELECT TOP 1 * FROM user ORDER BY to_user_id DESC
MySql
SELECT * FROM user ORDER BY to_user_id DESC LIMIT 1
您可以使用子選擇:
INSERT INTO message (from_user_id, to_user_id, text, created_at)
VALUES ((SELECT user.id FROM "user" WHERE username = 'admin'),
(SELECT user.id FROM "user"
WHERE created_at = (SELECT max(created_at) FROM "user")
FETCH FIRST 1 ROWS ONLY),
'selam',
created_at);
字符串常量在 SQL 中使用單引號。
基本上,像這樣鏈接到“用戶”表兩次。
SELECT from_user.id, to_user.id, "selam", created_at
FROM user from_user, user to_user
WHERE from_user.username = "admin"
AND to_user.username = "user_id"
或者您可以嘗試:
SELECT from_user.id, to_user.id, "selam", created_at
FROM user from_user
JOIN user to_user ON to_user.username = "user_id"
WHERE from_user.username = "admin"
兩者都將導致相同的 output,只是編寫相同內容的方式不同。
“user_id”和“admin”是用戶名還是 ID? 您可能需要更改:from_user.username 到 from_user.id 和 to_user.username 到 to_user.id
由於您的原始查詢建議用戶名,但“user_id”表示 integer ID 值。
希望這會有所幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.