查询将获取订单ID 12345中所有项目名称和项目类别名称

时间:2016-01-22 17:38:16

标签: mysql sql

I need help in writing a query that will get me the item category name for all items in this list. Even if it is null like Item.categoryID it should still give me back the names.

语法是Select * FROM,然后是表的名称?也许?或者将它们全部加入到一个表中并返回名称。

2 个答案:

答案 0 :(得分:0)

您需要left join,因为category列在item中可以为空。

SELECT i.*, c.name FROM
item i left join category c
on i.categoryID = c.categoryID
group by i.categoryID

答案 1 :(得分:0)

您已完成工作left outer join了。 left outer join基本上获取了连接条件左侧表的数据,即使它在另一个表中没有找到匹配项。 为了更好地理解,请遵循此link

enter image description here

假设您想要从绿色圆圈数据中检索数据,即使您没有找到匹配项,请执行以下操作

select 
         table1.*
       , table2.*
from 
     table1 left join table2 on table1.columnname = table2.columnname

因为你对获得类别名更感兴趣我会建议

select 
        cat.categoryname
      , item.name
from 
      category as  cat left join item as item on cat.categoryID = item.categoryID
group by cat.categoryname, item.name

通过这种方式,您可以获得所有类别名称以及这些类别中的项目并找到空类别。