我在mysql數據庫2個表時:帳戶和用戶2選擇1查詢結果在4個結果預計2個結果
我要選擇兩個表ACCOUNTID和用戶名和得到的結果,像這樣:
accountid || userid
7 22
29 44
我不明白爲什麼它給ŝ我4個結果像這樣:
我在mysql數據庫2個表時:帳戶和用戶2選擇1查詢結果在4個結果預計2個結果
我要選擇兩個表ACCOUNTID和用戶名和得到的結果,像這樣:
accountid || userid
7 22
29 44
我不明白爲什麼它給ŝ我4個結果像這樣:
根據你的截圖你有username
鏈接,這是非常差的db設計。
所以你應該改變你的模式,並使用user.id
鏈接你的表格。
但到目前爲止,您的查詢是:
SELECT accounts.accountid, users.userid
FROM accounts
LEFT JOIN users
ON accounts.username=users.username
這個語法做我需要的,我已經考慮到你提到的FK。謝謝 –
我們不知道到底是我們的表結構,但你definitly失蹤接通部分的加入
SELECT accounts.accountid,users.userid FROM賬戶 INNER JOIN用戶ON users.userid = accounts.userid
或任何你想比較
我相信你缺少的 'ON'語法的一部分,這給一試:
SELECT accounts.accountid, users.userid
FROM accounts
INNER JOIN users
ON accounts.userid=users.userid;
請確保您有「用戶ID」你的「賬戶」表這個工作,這告訴查詢加入了「用戶ID」兩表中,並應防止任何重複的行。
我希望這有助於!
我不知道爲什麼你沒有得到答案,但你應該知道你在這兩個表中有共同的用戶名的一點,所以如果你用這兩個表的用戶名的幫助將表加入表中,
select accountid,userid from Accounts inner join Users where Accounts.username=Users.username;
好了,我們不知道相同的名稱。如果沒有ON條件,table1中的每一行都與table2中的每一行連接。 – Seb
你是對的!我混合了「自然」加入..我要刪除它以避免其他人的錯誤 – Delphine
提供您的數據庫模式,並說明爲什麼'accountid = 7'鏈接到'userid = 22'但不是44? – Alex