2017-07-24 2 views
1

Ich habe in den folgenden Tabellen:Wie Wörter auszuwählen, die keine Definitionen hat

Tabelle: Wörter

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

Tabelle: Definitionen

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. 

Mein Ziel ist es zu finden ein Wort, das keine Definition in einer bestimmten Sprache hat, also kann ich eine Definition hinzufügen. In diesem Fall möchte ich das Wort "c" hochziehen. So

, wenn ich versuche:

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

ich alle Worte bekommen: 'a', 'b' und 'c'.

Wie löse ich dieses Problem?

+0

Sorry, war meine Frage nicht so klar! In meinem obigen Beispiel könnte das Wort "c" Definitionen in anderen Sprachen enthalten. Meine Frage ist also, Wörter auszuwählen, die keine Definitionen in einer bestimmten Sprache haben. – Lian

+0

Es gab mir die Wörter, die Definition in "meiner" Sprache hat, obwohl ich versuchte, wo Sprache! = "Mein". Tut mir leid, ich kämpfe mit Markups, hier. – Lian

+0

@Lian Wenn Sie in Zukunft eine mysql-Frage haben, stellen Sie bitte einen sqlfiddle-Link mit allen notwendigen db-Tabellen zur Verfügung. Dies ermöglicht es den Freiwilligen, Ihre Frage schnell und mit einem hohen Maß an Vertrauen und Genauigkeit zu beantworten. – mickmackusa

Antwort

1

Sie können hier eine Unterabfrage verwenden, um alle Wörter in Ihrer Zielsprache auszuwählen. Dann machen Sie eine not, so gibt es Ihnen alle Wörter nicht in dieser Sprache.

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

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

+1

Nicht "Sprache", sondern "Land". Verwenden Sie keine Großbuchstaben? Ich finde, dass SQL einfacher zu lesen ist. – mickmackusa

+0

Danke, verpasste das (vielleicht ist das der Grund, warum der ursprüngliche Kommentar nicht funktioniert hat, doh). Nein, Keywords werden normalerweise nicht groß geschrieben, es ist jedoch einfacher zu lesen. – chris85

Verwandte Themen