Mysql 在两个表的交叉处搜索空值-MariaDB

Mysql 在两个表的交叉处搜索空值-MariaDB,mysql,sql,mariadb,Mysql,Sql,Mariadb,在交叉2个表中搜索null-MariaDB 我需要在特定的表中获取所需的数据 我希望你能帮我解决这个问题,因为我不知道怎么做 Ligic: Table libros ___________________________________ libro 1 libro 2 libro 3 libro 4 Table librerias ___________________________________ libreria 1 | libro 1 libreria 1 | libro 2 lib

在交叉2个表中搜索null-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;

大概是这样的:

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

似乎需要使用外部联接。请仅用英语书写,并在回答中发布您的解决方案,而不是在问题中查看以了解更多信息。