SQL语句没有返回任何内容或在某些字段中返回NULL

时间:2018-03-01 05:52:58

标签: php mysql sql left-join inner-join

我在这里和其他网站上查看了很多问题,但仍然看不出为什么我的SQL语句没有返回任何内容。

基本上我有一个叫做“外卖”的数据库。分为两个表categoriesmenuitems

我想输出每个类别名称catname,并且与每个类别相关联的菜单项例如Cod Fillet属于类别2' catid'。

分类表字段:

catid
catname

菜单项表字段:

itemid
itemname
itemsize
itemprice
categoryid (foreign key)

我使用了以下SQL语句但没有产生任何内容

select
    menuitems.itemname,
    menuitems.size,
    menuitems.price,
    menuitems.categoryid,
    categories.catid,
    categories.catname 
FROM categories 
RIGHT JOIN menuitems
    ON categories.catid=menuitems.categoryid

我尝试过INNER JOIN和LEFT JOIN。没有任何效果。我想像这样输出:

Fish
    - Cod Fillet Large: £4.90 Medium: £3.90

等等......很明显我是用Mysql和PHP做的。

请有人帮忙指出我出错的地方吗?

由于

2 个答案:

答案 0 :(得分:3)

select
    menuitems.itemname,
    menuitems.itemsize,
    menuitems.itemprice,
    menuitems.categoryid,
    categories.catid,
    categories.catname
FROM categories AS  categories
Left JOIN menuitems AS menuitems
    ON categories.catid = menuitems.categoryid;

答案 1 :(得分:0)

我已经解决了以下问题...您可以在下面的链接中查看结果...希望它能帮到您..

我已经将表创建为需求......

http://sqlfiddle.com/#!9/082891/2

select
    Menuitems.itemname,
    Menuitems.itemsize,
    Menuitems.itemprice,
    Menuitems.categoryid,
    Categories.catid,
    Categories.catname
FROM Categories 
Left JOIN Menuitems 
    ON Categories.catid = Menuitems.categoryid;

从这个结果中你可以自定义你的需求......