mysql - 如何在sql查询中匹配两个不同的表?

标签 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;

关于mysql - 如何在sql查询中匹配两个不同的表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53800106/

相关文章:

mysql - MySQL中如何返回结果列表,WHERE只返回一个

mysql - 光标未打开错误

mysql - SQL 多子查询

android - 将多个sqlite数据库同步到一个mysql数据库

php - 我可以在不命名列的情况下显示查询结果吗?

sql - 将数据库列转换为行并求和

SQL:join:查找满足某些要求的所有对象

java - 如何改变这个按钮的 float ?

php - 查询数据库以获取时间戳相同且电子邮件地址相同的多行

asp.net - 使用@@identity检索PK