gpt4 book ai didi

mysql - 如何有条件地在多个字段上连接两个 MySQL 表?

转载 作者:行者123 更新时间:2023-11-29 04:12:59 25 4
gpt4 key购买 nike

在我的 MySQL 数据库中,我有 2 个表:pos_tablespos_user_login。在pos_tables,我有四个员工字段:staff1staff2staff3员工 4。这 4 个字段包含存储在中的工作人员的 IDpos_user_login。在pos_tables中,这些员工ID可能会重复,但是staff_idpos_user_login 中的主键。

我想做的是连接这两个表,条件是

if pos_user_login.staff_id=(pos_tables.staff1 OR
pos_tables.staff2 OR
pos_tables.staff3 OR
pos_tables.staff4)

... 如果 pos_tables 中的 4 个字段中的任何一个与来自pos_user_login,然后从 pos_tables 中获取该记录。

我需要运行什么查询才能执行此操作?

---- 编辑----

我应该使用这样的东西吗?

SELECT *
FROM pos_user_login pu
WHERE pos_user_login_id IN (SELECT *
FROM pos_tables
WHERE staff1 = pu.pos_user_login_id
OR staff2 = pu.pos_user_login_id
...);

---- 编辑 2 ----

样本记录

pos_tables
----------
table_number (1 )
staff1 (10)
staff2 (11)
staff3 (12)

pos_user_login
--------------
staff_id (10),
type (drinks_person)
staff_id(11), type (order_taker)
staff_id(12), type(cleaner)

在使用 WHERE 条件 (type="drinks_person") 进行比较后,输出应该是:

table_number(1), staff1(10), staff2("null"), staff3(null)

最佳答案

您可以使用 IN() 运算符:

SELECT *
FROM pos_tables JOIN pos_user_login
ON pos_user_login.staff_id IN (
pos_tables.staff1,
pos_tables.staff2,
pos_tables.staff3,
pos_tables.staff4
)

关于mysql - 如何有条件地在多个字段上连接两个 MySQL 表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5399915/

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