我有一個資料庫,其中有 2 個表,一個是'enlistments',另一個是'users'。在 enlistments 表中我有一個 user_id,在 users 表中我有一個名字。我想獲取屬于 id 的用戶名。
我知道我需要用這樣的內部連接來做到這一點:
SELECT enlistments.round_id, users.name
FROM enlistments
INNER JOIN users
ON enlistments.user_id=users.name
WHERE enlistments.activity_id = 1;
但是我收到此錯誤:警告:#1292 截斷不正確的 DOUBLE 值
我做了一些研究,發現它與比較一個 int 和一個字串有關,但我不知道如何解決這個問題。
這就是我的資料庫的樣子
uj5u.com熱心網友回復:
join on是您用來連接表格的條件。在這里enlistments.user_id=users.id。
select e.round_id
,u.name
from enlistments e join users u on u.id = e.user_id
where activity_id = 1
| round_id | 姓名 |
|---|---|
| 1 | 測驗2 |
小提琴
uj5u.com熱心網友回復:
為了驗證并確保您正在拉回所需的確切資料,我通常為帶回的每一列提供別名,并確保也帶回連接列。最好標記回傳的列的來源。
SELECT
Enlistments.UserID as Enlistments_UserID,
Users.ID as Users_ID,
enlistments.round_id as Enlistments_RoundID,
users.name as Users_Name
FROM enlistments
INNER JOIN users
ON enlistments.user_id=users.id
WHERE enlistments.activity_id = 1;
uj5u.com熱心網友回復:
SELECT EN.round_id, US.name
FROM enlistments EN
INNER JOIN users US
ON US.name= CAST(EN.user_id AS VARCHAR)
WHERE EN.activity_id = 1
您需要的是可以將任何型別的資料轉換為另一種資料的函式轉換,因此您將整數值作為第一個引數傳遞,然后是
標籤:sql数据库加入内部联接 "AS '
