2017-07-24 17 views
1

我有以下表格:如何選擇的話有沒有定義

表:也就是說

id word 
    1 a 
    2 b 
    3 c ... so on 

表:定義

id wid land definition 
1 1 en the first letter of the Roman alphabet 
2 1 en the blood group "A" 
3 1 my Definition of 'a' in Malaysia 
4 1 sg Definition of 'a' in Singapore 
5 2 en the second letter.... 
6 2 en the blood group "B" 
7 2 my Definition of 'b' in Malaysia 
8 2 sg Definition of 'b' in Singapore 
.... and so on. 

我的目標是要找到一個沒有特定語言定義的詞,所以我可以添加一個定義。在這種情況下,我想拉起'c'這個詞。

所以,當我嘗試:

"SELECT word FROM words, definition WHERE words.id = wid AND lang != 'my' 

我得到的所有的話: 'A', 'B' 和 'C'。

我該如何解決這個問題?

+0

對不起,我的問題不是那麼清楚!在我上面的例子中,'c'這個詞可能有其他語言的定義。所以我的問題是選擇沒有特定語言定義的單詞。 – Lian

+0

它給了我用'我的'語言定義的單詞,即使我嘗試過哪裏語言!='我的'。對不起,我在這裏與標記糾纏在一起。 – Lian

+0

@Lian在未來,如果你有一個mysql問題,請提供一個sqlfiddle鏈接,其中包含所有必要的數據庫表格。這使得志願者能夠以高度的信心和準確性迅速回答你的問題。 – mickmackusa

回答

1

您可以在此處使用子查詢來選擇您的目標語言中的所有單詞。然後做一個not所以它給你的所有單詞不是用那種語言。

SELECT id, word 
FROM words 
WHERE id NOT IN (SELECT wid FROM definitions WHERE land ='my') 

演示:http://sqlfiddle.com/#!9/2d146/3/0

+1

不是'language',而是'land'。你不使用大寫的關鍵字嗎?我發現sql更容易閱讀。 – mickmackusa

+0

謝謝,錯過了(也許這就是爲什麼原創評論沒有工作,doh)。不,我通常不會使用關鍵字大寫,但讀起來更容易。 – chris85

相關問題