mysql - 如何在sql查询中匹配两个不同的表?
问题描述
我在下面有这两种表格:
Stocks Table Order Table
------------- -------------
| stockid | | orderid |
| stockname | | orderqty |
| stockqty | | stockid |
------------- -------------
我想做的是当orderqty
大于stockqty
我想显示一条消息说库存不足,当orderqty
小于时stockqty
它完成了。
这里主要关注的是识别orderqty
是小于还是大于stockqty
。
解决方案
请查看此 DB Fiddle 并让我知道它是否有帮助。
https://www.db-fiddle.com/f/hgEdnyeTTuxamXna9ELL3P/2
CREATE TABLE t_stock (
stockid INT,
stockname VARCHAR(50),
stockqty BIGINT
);
INSERT INTO t_stock (stockid, stockname, stockqty) VALUES (1, 'salmon', 150);
INSERT INTO t_stock (stockid, stockname, stockqty) VALUES (2, 'asparagus', 275);
INSERT INTO t_stock (stockid, stockname, stockqty) VALUES (3, 'lemon', 300);
CREATE TABLE t_order (
orderid INT,
orderqty BIGINT,
stockid INT
);
INSERT INTO t_order (orderid, orderqty, stockid) VALUES (13, 150, 3);
INSERT INTO t_order (orderid, orderqty, stockid) VALUES (14, 275, 2);
INSERT INTO t_order (orderid, orderqty, stockid) VALUES (15, 300, 1);
SELECT o.orderid
,o.stockid
,o.orderqty
,s.stockqty
,CONCAT(CASE WHEN o.orderqty > s.stockqty
THEN 'stocks are not enough for '
WHEN o.orderqty = s.stockqty
THEN 'stocks are just enough for '
ELSE 'we have plenty of stock for '
END, s.stockname) as stockqty_analysis
FROM t_stock s INNER JOIN t_order o
ON s.stockid = o.stockid;
推荐阅读
- c# - 如何在单击按钮时仅创建一个新窗口实例?Caliburn.Macro
- javascript - 将 jquery 转换为 vanilla js
- html - 网站在移动设备上不显示任何 CSS 样式
- visual-studio - 将 NuGet 包推送到 nuget.org 时如何发布文档?
- firebase - 我正在尝试从 Firestore 获取我的数据
- python - python sockets发送文件功能解释
- python - 这些函数看起来就像他们会做同样的事情,但一个有效,一个无效。为什么?
- oracle-apex-20.2 - Oracle APEX 卡区域不转义字符
- c - GCC 编译器找不到 stdio.h
- angular - 如何在不同地方的表单中为ngModelGroup设置唯一名称