がうまくいけば、私はあなたのテーブル構造の理解を持っている:
表:人々
- PERSON_ID:オートナンバー主キー
- PersonNameの:テキスト
表:言語
- LANGUAGE_ID:オートナンバー主キー
- 言語:テキスト
表:Person_Languag e_Link
SELECT PersonName , Language , Language_Level FROM (People T1 LEFT JOIN Person_Language_Link T2 ON T1.Person_ID = T2.Person_ID) LEFT JOIN Languages T3 ON T2.Language_ID = T3.Language_ID WHERE Language IN ('French', 'English')
SELECT T2.PersonName
, T4.Language
, T3.Language_Level
FROM (((
SELECT Person_ID
, Count(Person_ID) AS CountOfPerson_ID
FROM Person_Language_Link LEFT JOIN Languages ON Person_Language_Link.Language_ID = Languages.Language_ID
WHERE Languages.Language In ('French','English')
GROUP BY Person_ID
HAVING Count(Person_ID)=2
) T1 INNER JOIN People T2 ON T1.Person_ID = T2.Person_ID)
INNER JOIN Person_Language_Link T3 ON T1.Person_ID = T3.Person_ID)
INNER JOIN Languages T4 ON T3.Language_ID = T4.Language_ID
WHERE T4.Language IN ('French','English')
内側のSELECTクエリが両方の言語を知っているもののPERSON_IDの残りを返します:TERは、いくつかは、私はSQLを書くためのより良い方法があります感じるものの、これは、英語とフランス語を知っている人たちを返すと思いましたクエリは、それらのIDの人名、言語、レベルを取得します。
フランス語を話す人々&英語が話す他の言語を参照するには、WHERE
の最後の文を削除してください。
こんにちは、それは正しく、 私はあなたが言ったことを試してみましたが、それはspaek英語またはフランス語できるpepleを示しています。 これは、一人の人間が両方の言語を話すことを意味し、実行を押すと、この人の名前が英語で2回、フランス語で1回のレコードが表示されます。 (英語とフランス語)を話せない人(英語とフランス語)を表示する質問を取得したい – Mitra
私は2番目の質問を返すように更新しました何を求めているのですか? –