简体   繁体   English

MYSQL:如何根据另一个表中的数据选择列?

[英]MYSQL: How do select column depending on data from another table?

i have three tables: 我有三张桌子:

Technician - which contains data of the name of tech and which stock provider they get their stock from 技术员-包含技术名称数据以及他们从哪个股票提供者那里获取股票

Stock order - the list of items that they have ordered 库存订单-他们已订购的物品清单

Stock code - a list of the name of the items and the different codes depending on the provider. 库存代码-物品名称的列表以及根据提供者的不同代码。

What i am trying to do run a query that selects the relevant product code depending on which provider the technician gets his stock from as per the outcome table below 我要执行的操作运行查询,根据以下结果表,根据技术人员从哪个供应商获取库存的信息,选择相关的产品代码

Could anyone help me please. 谁能帮我。

thanks in advance. 提前致谢。

Tables

Technician 技术员

+-------------+----------------+
| Technician  | Stock Supplier |
+-------------+----------------+
| Bob Jones   | Provider 1     |
| Erika Jones | Provider 1     |
| Steve Jones | Provider 2     |
+-------------+----------------+

Stock Order 库存订单


+-------------+-----------------------+-------------------+
|  Tech Name  |     Product Name      |     Category      |
+-------------+-----------------------+-------------------+
| Bob Jones   | WURTH PASTE GREY      | CONSUMABLES       |
| Bob Jones   | RADIANT WAX           | VALETING PRODUCTS |
| Bob Jones   | TELESCOPIC MAGNET     | HARDWARE          |
| Steve Jones | TELESCOPIC MAGNET     | HARDWARE          |
| Steve Jones | SAFETY GLASSES (PREP) | HARDWARE          |
| Erika Jones | ENGINE OIL 1L         | MAINTENANCE ITEMS |
| Erika Jones | WURTH VAKU 50 FILLER  | CONSUMABLES       |
+-------------+-----------------------+-------------------+

Stock codes 股份代号




+-------------------+-----------------------------------+-------------------------+-------------------------+----------+-------+
|     CATEGORY      |               ITEM                | PROVIDER 1 PRODUCT CODE | PROVIDER 2 PRODUCT CODE | QUANTITY | PRICE |
+-------------------+-----------------------------------+-------------------------+-------------------------+----------+-------+
| VALETING PRODUCTS | RADIANT WAX                       | CON.46105               | 46101                   |        1 |  4.92 |
| CONSUMABLES       | WURTH PASTE BLACK                 | 8932801                 | 8932801                 |        1 | 21.44 |
| CONSUMABLES       | WURTH PASTE GREY                  | 8932802                 | 8932802                 |        1 | 21.44 |
| CONSUMABLES       | WURTH PLASTIC CLEANER             | 8935001                 | 8935001                 |        1 | 12.99 |
| CONSUMABLES       | WURTH VAKU 50 FILLER              | 89260501                | 89260501                |        1 | 14.95 |
| MAINTENANCE ITEMS | ENGINE OIL 1L                     | 521772392               | 521772392               |        1 |  5.63 |
| MAINTENANCE ITEMS | RED ANTIFREEZE (65 PLATE ONWARDS) | 523770482               | 523770482               |        1 |   2.3 |
| HARDWARE          | TELESCOPIC MAGNET                 | 553777300               | 60370                   |        1 |  2.32 |
| HARDWARE          | SAFETY GLASSES (PREP)             | 3M2720S                 | 15SC                    |        1 |  2.83 |
| HARDWARE          | SAFETY GLASSES (OVER SPECTACLES)  | 3M2800                  | 15SC                    |        1 |  3.06 |
| PPE               | SIZE 9 MECHANIC STYLE GLOVES      | GRE.30305509            | 303-MAT-PR              |        1 |  1.48 |
+-------------------+-----------------------------------+-------------------------+-------------------------+----------+-------+



Outcome 结果



+-------------+-----------------------+-------------------+-----------+
|  Tech Name  |         Name          |     Category      |   Code    |
+-------------+-----------------------+-------------------+-----------+
| Bob Jones   | WURTH PASTE GREY      | CONSUMABLES       | 8932802   |
| Bob Jones   | RADIANT WAX           | VALETING PRODUCTS | CON.46105 |
| Bob Jones   | TELESCOPIC MAGNET     | HARDWARE          | 553777300 |
| Steve Jones | TELESCOPIC MAGNET     | HARDWARE          | 60370     |
| Steve Jones | SAFETY GLASSES (PREP) | HARDWARE          | 15SC      |
| Erika Jones | ENGINE OIL 1L         | MAINTENANCE ITEMS | 521772392 |
| Erika Jones | WURTH VAKU 50 FILLER  | CONSUMABLES       | 89260501  |
+-------------+-----------------------+-------------------+-----------+

Use CASE WHEN to do conditional pickup for code , based on value of stock_supplier from technician table. 使用CASE WHEN根据technician表中的stock_supplier值对code进行条件提取。

SELECT 
    so.tech_name 'Tech Name',
    so.product_name Name,
    so.category Category,
    CASE t.stock_supplier
        WHEN 'Provider 1' THEN sc.PROVIDER_1_PRODUCT_CODE
        WHEN 'Provider 2' THEN sc.PROVIDER_2_PRODUCT_CODE
    END AS Code
FROM stock_order so
INNER JOIN technician t ON so.tech_name = t.technician
INNER JOIN stock_codes sc ON so.product_name = sc.item;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 MYSQL仅在该表的列值与另一表的列值匹配的情况下,才如何从该表中选择数据? - MYSQL How do I select data from one table only where column values from that table match the column values of another table? MySQL:如何从另一个表的列中选择数据 - MySQL: How to select data from a column in another table Select 条件取决于另一列的值的语句 - 同一个表(mysql) - Select statement with conditions depending on the value of another column - same table (mysql) 如何在MySQL中使用SELECT语句从一个表中获取数据,并从另一表中覆盖数据? - How do I take data from one table, and overwrite it from another table, with a SELECT statement in MySQL? MySQL SELECT的结果来自1个表,但排除结果取决于另一个表? - MySQL SELECT results from 1 table, but exclude results depending on another table? MySQL:如何根据另一列为空,从另一列中选择具有值的列? - MySQL: How to select a column with a value from another column, depending on which columns are empty? 我如何从 MySQL 表中的 select 行按一列分组,另一列具有所需值 - How do I select rows from a MySQL table grouped by one column with required values in another 如何根据一个表中的数据选择一个表中的数据 - How can I select data from one table depending on the data from another table 如何从一个表中选择与表中的列值相匹配的数据? - How do I select data from one table where column values from that table match the conatenated column values of another table? MySql表类型,如何将列数据从一个表自动绘制到另一个表? - MySql table type, how do I draw column data from one table to another automatically?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM