私は過去に単純なSQL文しか使用していませんでしたが、突然自分自身がもっと複雑なことをしなければならず、自分の深みから抜け出しています。どんな助けもありがとう。 複雑(私にとって)SQL文
私はテーブルを持っている:Candidates
CandidateLanguages
CandidateSkills
各候補者は1つの以上の言語とCandidate
ため
だから、1つの以上のスキルを有することができます"FRED"、彼の記録CandidateLanguages
でdsは
FRED - ENGLISH
FRED - FRENCH
CandidateSkills
で
と彼のレコードはCandidateLanguages
で "JIM" 彼のレコードは
JIM - ENGLISH
とCandidateSkills
で彼のレコードのかもしれ
FRED - RUNNING
FRED - JUMPING
とCandidate
ためのものであってもよいかもしれ
JIM - RUNNING
私のクエリでは、複数のスキルと言語にマッチする候補を選択する必要があります。英語で例えばので
:
は...
を選択したすべての言語を話すと、選択したスキルのすべてを持っている候補者のすべてを選択するか、別の方法を置く....
上記の二つの候補のSELECT ALL candidates WHERE
(language = 'FRENCH' AND language is 'ENGLISH') AND
(skill = 'RUNNING' AND skill = 'JUMPING')
、これはのみから複数のレコードを選択しようとすると問題があることを私は理解し
を「FRED」を返す必要があります言語とスキルテーブルと私はそれが参加すると思うが必要になることがありますが、今は失われています.......
をご入力ありがとうございました - それはずっと
は、クエリを逆転しようとしたことがありますか? 「スキルの1つが欠落しているか、または欠落しているすべての候補者を教えてください」場合によっては、問題を再現することで、他の/より良い解決策が得られる場合もあります。適切な場所に「not」を置くと、必要なデータが得られるはずですが、「欠けていない」部分は、「having having」部分よりもSQLクエリとして定式化する方が簡単かもしれません。 –
thats 60 points .. 14より多く、彼は毎日の制限に達すると、明日を待たなければならない。 – user1974729
@ user1974729:質問の6 upvotesは30の担当者、60ではないことを意味する。 –