2017-11-27 8 views
-2

2つのテーブルの交差でnullsを検索する - MariaDB2つのテーブルの交差でnullsを検索する - MariaDB

私は特定のテーブルに必要なデータを取得する必要があります。

これを行う方法がわからないため、この問題を解決するのに役立ちます。

Ligic: 

Table libros 
___________________________________ 
libro 1 
libro 2 
libro 3 
libro 4 

Table librerias 
___________________________________ 
libreria 1 | libro 1 
libreria 1 | libro 2 
libreria 2 | libro 3 
libreria 2 | libro 4 
libreria 3 | libro 2 
libreria 3 | libro 4 
libreria 4 | libro 3 
libreria 4 | libro 2 

I want to this result 
___________________________________ 
libreria 1 | libro 1 | libro 1 
libreria 1 | libro 2 | libro 2 
libreria 1 | libro 3 | NULL 
libreria 1 | libro 4 | NULL 
libreria 2 | libro 1 | NULL 
libreria 2 | libro 2 | NULL 
libreria 2 | libro 3 | libro 3 
libreria 2 | libro 4 | libro 4 
libreria 3 | libro 1 | NULL 
libreria 3 | libro 2 | libro 2 
libreria 3 | libro 3 | NULL 
libreria 3 | libro 4 | libro 4 
libreria 4 | libro 1 | NULL 
libreria 4 | libro 2 | libro 2 
libreria 4 | libro 3 | libro 3 
libreria 4 | libro 4 | NULL 

それは私に少し、私はちょうど思っロジックを要し、それが出てきたので、私は、それを達成しています。

これがソリューションです:

 


    SELECT x.libreria, x.libro, y.libro 
    FROM (
     SELECT a.libreria, b.libro 
     FROM librerias a 
     LEFT JOIN libros b ON b.libreria=a.libreria 
     GROUP BY a.libreria 
    ) x 
    LEFT JOIN librerias y ON y.libreria = x.libreria AND y.libro = x.libro; 

 
+0

は思えます。 https://stackoverflow.com/questions/4796872/how-to-do-a-full-outer-join-in-mysql – clinomaniac

+0

英語で書いて、あなたの解答を答えに載せてください。 ] 詳しく知ることができ。 –

答えて

0

このような何か:あなたが外部結合を使用する必要があるよう

SELECT a.liberia, b.libros, c.libros 
    FROM (SELECT DISTINCT liberia FROM liberias) AS a 
    JOIN libros AS b 
    LEFT JOIN liberia AS c ON c.libros = b.libros 
          AND c.liberia = b.liberia 
関連する問題