【问题标题】:SQL statement not returning anything or returning NULL in some fieldsSQL 语句不返回任何内容或在某些字段中返回 NULL
【发布时间】:2018-08-09 03:36:18
【问题描述】:

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

基本上,我有一个名为“takeaway”的数据库,分为两个表categoriesmenuitems

我想输出每个类别名称 catname 以及与每个类别关联的菜单项,例如 Cod Fillet 是类别 2 'catid' 的一部分。

类别表字段:

catid
catname

Menuitems 表字段:

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 来做这件事。

请有人帮忙指出我哪里出错了?

谢谢

【问题讨论】:

  • Nothing has worked ... 什么不起作用?您的查询看起来应该返回一些内容。
  • 你应该在这里使用 INNER JOIN,而不是 RIGHT JOIN。您的查询肯定会返回一些数据,除非您在 categories.catid = menuitems.categoryid 列上缺少匹配项(我猜是这种情况,因为您在 RIGHT JOIN 上得到 NULL)。
  • 将其更改为 INNER JOIN 不会产生任何结果。有11个类别,每个类别至少有一个项目,所以我真的不明白为什么没有结果。
  • @Daniel 你能提供一些示例数据吗?

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


【解决方案1】:
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;

【讨论】:

  • 尝试了该语句并从 PHPMyAdmin 产生错误消息:#1064 您的 SQL 语法有错误
  • 把括号打开 (categories.catid = menuitems.categoryid);
  • 感谢工作!感谢其他提供帮助的人。
【解决方案2】:

我已经解决了以下问题...您可以在下面的链接中查看结果...希望对您有所帮助..

我已根据要求创建了表格...

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;

根据这个结果,您可以自定义您的需求...

【讨论】:

  • 再次感谢您。这很有帮助。
猜你喜欢
  • 1970-01-01
  • 2016-04-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-11
  • 2012-09-07
相关资源
最近更新 更多