SQLite JOINTURE GAUCHE & Clause where de la confusion

J'ai deux Tables:

Tableau 1: Questions:

QuestionId NUMERIC
Title      TEXT

Des Données de Test dans la Table Question:

QuestionId     Title
1              What is your name?
2              What is your age?

Tableau 2: Réponses:

AnswerId     NUMERIC
PersonId     NUMERIC
QuestionId   NUMERIC
Answer       TEXT

Si il y a PAS de DONNÉES dans les Réponses de la Table puis ci-dessous requête renvoie des résultats corrects (2 lignes):

SELECT  q.QuestionId, q.Title, a.Answer
FROM    Questions q
    LEFT OUTER JOIN Answers a ON q.QuestionId = a.QuestionId
WHERE    a.PersonId = 2 OR a.PersonId IS null

Mais si j'ai par exemple 1 enregistrement dans la Table de Réponse comme:

AnswerId     1
PersonId     1
QuestionId   1
Answer       'My Name is Yaqub'

Ci-dessous requête fonctionne très bien:

SELECT  q.QuestionId, q.Title, a.Answer
FROM    Questions q
    LEFT OUTER JOIN Answers a ON q.QuestionId = a.QuestionId
WHERE    a.PersonId = 1 OR a.PersonId IS null

Mais cette requête renvoie seulement une ligne:

SELECT  q.QuestionId, q.Title, a.Answer
FROM    Questions q
    LEFT OUTER JOIN Answers a ON q.QuestionId = a.QuestionId
WHERE    a.PersonId = 2 OR a.PersonId IS null

La requête ci-dessus renvoie juste une ligne qui est mal, parce que j'ai deux questions à la Question de la Table & à la requête ci-dessus doit retourner les deux d'entre eux en raison de l'état " OU un.PersonId EST nulle".

Pourquoi pas le retour de DEUX Lignes?

Résultats Souhaités:

Je veux recevoir toutes les questions(2 lignes) & ces réponses où PersonId a une certaine valeur,par exemple DEUX lignes pour la Personne 2 parce que je n'ai pas de données dans la Table de Réponse.

Raison pour VOTER s'il vous plaît?
Je ne suis pas le downvoter, mais votre question n'est pas très claire.

OriginalL'auteur Yaqub Ahmad | 2012-06-27