je ne me rappelle pas comment se joindre à une table pour lui-même .. ma table est:jointure gauche sur la même table
| id | proc | value | kind |
| 1 | 1 | foo | a |
| 2 | 1 | bar | b |
| 3 | 2 | some | a |
et je dois récupérer la valeur col où proc est proc $ et est à la fois «genre a » et 'b' .. Eh bien, je dois faire ont que (la recherche de proc = 1):
| v_a | v_b |
| foo | bar |
J'ai donc écrit cette requête:
SELECT
a.value AS v_a,
b.value AS v_b
FROM
(SELECT value FROM table WHERE proc = '1' AND kind = 'a') AS a,
(SELECT value FROM table WHERE proc = '1' AND kind = 'b') AS b
et de travaux mais ly si dans la table j'ai les deux lignes pour kind = a et kind = b.
Mais j'ai besoin que si manquez une ligne, je vais avoir une valeur nulle: si je cherche proc = 2 je dois obtenir:
| v_a | v_b |
| foo | NULL|
Au lieu de cela, avec ma requête je ne s'anythong si la b ou une ligne est manquante.
Je travaille avec mysql ... Comment faire ça?
Edit: Je pourrais utiliser la clause UNION, mais cela me permettra pas d'avoir une valeur NULL quand une ligne est manquante (type = a ou type = b)
Idéologiquement, c'est ce dont j'ai besoin, mais je reçois l'erreur près de la jointure complète .. est-ce que mysql supporte la jointure complète? – Strae
J'ai modifié la requête à UNION de 2 LEFT JOIN. – manji
Et nous avons un gagnant! Ça marche. Mais sa complexité ressemble à une alerte de mauvaise conception de mes tables db, je vais vérifier à nouveau ma structure s'il y a un moyen plus simple et plus rapide .. merci l'homme! – Strae