gpt4 book ai didi

mysql - 将MySQL中的数据列与不同的值关联起来

转载 作者:行者123 更新时间:2023-11-30 00:55:15 27 4
gpt4 key购买 nike

我认为这是一个简单的问题,但我无法完全理解答案。在一个数据库表中,我有一系列位置 ID,它们与另一个表中的位置 ID 相关联。我想在这些 ID 之间创建一个明确且不变的链接,但 ID 本身具有不同的值。

我如何确保(例如)BA789 或 BA8001 中的员工始终与位置代码 CN345 关联(它们是相同的物理位置)。

谢谢,汤姆

最佳答案

如果没有看到实际的表架构和示例数据,很难判断,但如果您的表看起来像这样

CREATE TABLE locations
(
location_id VARCHAR(6) PRIMARY KEY
);

CREATE TABLE employees
(
employee_id INT PRIMARY KEY,
location_id VARCHAR(6),
FOREIGN KEY (location_id) REFERENCES locations(location_id)
);

然后就可以引入位置代码(ids)之间的多对多映射表了

CREATE TABLE location_map
(
location_id1 VARCHAR(6),
location_id2 VARCHAR(5),
FOREIGN KEY (location_id1) REFERENCES locations(location_id),
FOREIGN KEY (location_id2) REFERENCES locations(location_id)
);

包含以下内容

| LOCATION_ID1 | LOCATION_ID2 ||--------------|--------------||        BA789 |        CN345 ||       BA8001 |        CN345 |

Now you can do something like

SELECT employee_id, location_id, 
COALESCE(m.location_id2, location_id) mapped_location_id
FROM employees e LEFT JOIN location_map m
ON e.location_id = m.location_id1;

示例输出:

| EMPLOYEE_ID | LOCATION_ID | MAPPED_LOCATION_ID ||-------------|-------------|--------------------||           1 |       BA789 |              CN345 ||           2 |      BA8001 |              CN345 ||           3 |      BA9999 |             BA9999 |

关于mysql - 将MySQL中的数据列与不同的值关联起来,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20621638/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com