我試圖使用列JOIN
2個表不屬於任何表相應的主鍵:如何在不使用任何主鍵時加入兩個表?
SELECT *
FROM TableA A
INNER JOIN TableB B
ON A.col5 = B.col5
然而,上述被返回0 results
即使我知道肯定有在Table A
其行col5
值與的Table B
中的值匹配。
我在做什麼錯?
我試圖使用列JOIN
2個表不屬於任何表相應的主鍵:如何在不使用任何主鍵時加入兩個表?
SELECT *
FROM TableA A
INNER JOIN TableB B
ON A.col5 = B.col5
然而,上述被返回0 results
即使我知道肯定有在Table A
其行col5
值與的Table B
中的值匹配。
我在做什麼錯?
您查詢:
SELECT *
FROM TableA A
INNER JOIN TableB B
ON A.col5 = B.col5;
先後爲聯接正確的語法。如果有匹配的值,那麼它會返回它。 (或者當然,您可以從應用程序調用此應用程序,並且應用程序代碼或與數據庫的連接可能存在錯誤,但這是另一個問題。)
某些情況下,值看起來相同但不是:
abc
與ABC1
相同,但SQL不。,另外兩個是我能想到的,但在所有的數據庫可能不是真正的原因:
您的查詢是正確的,應該返回表中的匹配值。但正如你所說的那樣,最後其他表中的值存在不可見的空間,請嘗試使用LTRIM和RTRIM從值中移除不可見的空間。 LTRIM從字符串的開頭刪除空格,RTRIM從字符串的末尾刪除空格。
的查詢是這樣的:
SELECT * FROM tableA的 INNER JOIN表B乙 ON A.col5 = LTRIM(RTRIM(B.col5))
我希望它可以幫助你。
。 。你所知道的「肯定」似乎不是現實。你的語法對於一個連接是正確的。如果表中存在匹配的非空值,則查詢將返回它們。 –
Plz,提供小提琴,證明你的話 – user4035
我們可以得到的數據集? – Tadgh