SQL连接甚至没有这样的id

Mir*_*rod 0 mysql sql join inner-join

我有以下查询:

SELECT * FROM 
   (
       SELECT 
       catalog.*,
       images.image 
       FROM `catalog` as catalog 
       INNER JOIN `type5` as images ON catalog.id = images.id 
       WHERE catalog.left_key > (SELECT `left_key` FROM `catalog` WHERE `id`=235) AND catalog.right_key < (SELECT `right_key` FROM `catalog` WHERE `id`=235)
       ORDER BY catalog.left_key ASC
   ) ilv
Run Code Online (Sandbox Code Playgroud)

此查询运行良好,但仅当表type5中的项目ID相同时,它才会选择FROM目录.

例如,在目录中,我有:

id name
 5 Hello
 7 World
 8 Foo
 9 Bar
Run Code Online (Sandbox Code Playgroud)

在类型5我有:id图像

 5 hello.png
 8 foo.png
 9 bar.png
Run Code Online (Sandbox Code Playgroud)

它只会选择

 5 Hello
 8 Foo
 9 Bar
Run Code Online (Sandbox Code Playgroud)

即使在type5中没有相同的id,如何编辑我的查询以从目录中选择项目?

Ron*_*ijm 7

你正在使用一个inner join,这意味着它只会获得两个表中的项目.

你可能正在寻找一个left outer join.

如果你真的没有得到联接的工作方式,这里有一个很好的视觉表现来解释它.