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

ddhy6vgd  于 2021-06-15  发布在  Mysql
关注(0)|答案(2)|浏览(453)

我有以下两种表格:

  1. Stocks Table Order Table
  2. ------------- -------------
  3. | stockid | | orderid |
  4. | stockname | | orderqty |
  5. | stockqty | | stockid |
  6. ------------- -------------

我想做的是 orderqty 大于 stockqty 我想显示一个信息,说股票是不够的,什么时候 orderqty 小于 stockqty 然后就完成了。
这里主要关注的是确定 orderqty 小于或大于 stockqty .

hmtdttj4

hmtdttj41#

  1. SELECT o.orderid,
  2. o.orderqty,
  3. s.stockqty,
  4. 'stocks are not enough' AS message
  5. FROM orders o
  6. JOIN stocks s ON o.stockid = s.stockid
  7. WHERE o.orderqty < s.stockqty
gzszwxb4

gzszwxb42#

请看这把小提琴,如果有用请告诉我。
https://www.db-fiddle.com/f/hgednyettuxamxna9ell3p/2

  1. CREATE TABLE t_stock (
  2. stockid INT,
  3. stockname VARCHAR(50),
  4. stockqty BIGINT
  5. );
  6. INSERT INTO t_stock (stockid, stockname, stockqty) VALUES (1, 'salmon', 150);
  7. INSERT INTO t_stock (stockid, stockname, stockqty) VALUES (2, 'asparagus', 275);
  8. INSERT INTO t_stock (stockid, stockname, stockqty) VALUES (3, 'lemon', 300);
  9. CREATE TABLE t_order (
  10. orderid INT,
  11. orderqty BIGINT,
  12. stockid INT
  13. );
  14. INSERT INTO t_order (orderid, orderqty, stockid) VALUES (13, 150, 3);
  15. INSERT INTO t_order (orderid, orderqty, stockid) VALUES (14, 275, 2);
  16. INSERT INTO t_order (orderid, orderqty, stockid) VALUES (15, 300, 1);
  17. SELECT o.orderid
  18. ,o.stockid
  19. ,o.orderqty
  20. ,s.stockqty
  21. ,CONCAT(CASE WHEN o.orderqty > s.stockqty
  22. THEN 'stocks are not enough for '
  23. WHEN o.orderqty = s.stockqty
  24. THEN 'stocks are just enough for '
  25. ELSE 'we have plenty of stock for '
  26. END, s.stockname) as stockqty_analysis
  27. FROM t_stock s INNER JOIN t_order o
  28. ON s.stockid = o.stockid;
展开查看全部

相关问题