【发布时间】:2018-08-09 03:36:18
【问题描述】:
我在此处和其他站点上查看了很多问题,但仍然看不出为什么我的 SQL 语句没有返回任何内容。
基本上,我有一个名为“takeaway”的数据库,分为两个表categories 和menuitems。
我想输出每个类别名称 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