2012-12-03 16 views
0

我在查找另一列時遇到問題。我有這樣的代碼:如何在sql中找到另一列sql

SELECT company.name 
FROM company, person 
WHERE company.name not like '%'+person.sirname+'%' 

有兩個表,公司列 - 名

Company of mr. Black 

和人與列 - sirname

Black 

但是當我運行這段代碼,它成爲一個錯誤「無效號碼」

回答

2

字符串需要與串接||運營商(你可能需要一個連接狀態):

SELECT company.name 
FROM company, person 
WHERE company.name not like '%' || person.sirname || '%' 
AND person.company_id = company.id 

如果使用+操作,數據庫嘗試將名稱轉換爲數字,你會得到錯誤無效號碼

+0

很好用!謝謝 – fen1ksss

+0

沒有AND person.company_id = company.id無論如何它應該工作,因爲我試圖找到另一列,所以他們應該連接,我是對嗎? – fen1ksss

+0

在表COMPANY和表PERSON之間沒有JOIN條件的情況下,第一個表中的每一行都與第二個表中的每一行進行連接,查詢結果將會很大。您不喜歡條件幾乎不是JOIN條件,因爲它消除了很少的行。所以它不會叫它*連接。您可能需要更好地描述兩個表(列,示例數據)以及您想要達到的目標(最好在新問題中)。那我們可以更好地幫助你。 – Codo

2

我想你正試圖加入這兩個表。嘗試使用顯式JOIN語法像這樣:

SELECT company.name 
FROM company 
INNER JOIN person ON company.name not like '%'+person.sirname+'%' 
+0

@ fen1ksss問題錯了 - 什麼RDBMS使用的是? –

1

我認爲你應該使用內最好的東西加入做不是爲了得到還使用我猜這可能幫助ID如果我沒有得到