В моей БД MySQL у меня есть 2 таблицы: pos_tables
и pos_user_login
.В pos_tables
у меня есть четыре поля персонала: staff1
, staff2
, staff3
, staff4
.Эти 4 поля содержат идентификаторы сотрудников, хранящиеся в pos_user_login
.В pos_tables
эти идентификаторы персонала могут повторяться, но staff_id
является первичным ключом в pos_user_login
.
Я пытаюсь объединить эти две таблицы, используя условие
if pos_user_login.staff_id=(pos_tables.staff1 OR
pos_tables.staff2 OR
pos_tables.staff3 OR
pos_tables.staff4)
... и если любое из 4 полей из pos_tables
соответствует первичному ключу из 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 ----
SAMPLE RECORD
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)