Доступ к одной и той же таблице, разные параметры - PullRequest
0 голосов
/ 24 сентября 2019

Я делаю базу данных управления клиентами, у меня есть таблица с именем Dates, которая может получить доступ к клиенту и сотруднику, и обе могут получить доступ к данным, где сохранена личная информация, как я могу дважды получить доступ к данным?

Таблица дат

--------------------------------------
id    fk_idCustomers    fk_idEmployee
--------------------------------------
1     1               2

Таблица клиентов

-------------------
id    fk_idData
-------------------
1     1

Таблица сотрудников

-------------------
id    fk_idData
-------------------
2     2

Таблица данных

------------------------
id    Name    LastName
------------------------
1     John      Doe
2     John1      Doe1

Я хочуиметь имена сотрудников и клиентов

Ответы [ 2 ]

0 голосов
/ 24 сентября 2019

Я нашел ответ, делая:

select 
    data.nombre , 
    data.apellido , 
    dates.documentacion,
    d.nombre,
    d.apellido
from 
    dates
inner join customers on dates.idCliente = customers.id 
inner join data on customers.idDatos = data.id
inner join employees on dates.idUsuario = employees.id
inner join dates d on employees.idDatos = d.id
;

+------+-------+----------+-------+----------+
| id   | name  | lastname | name  | lastname |
+------+-------+----------+-------+----------+
|    1 | John  | Doe      | John1 | Doe1     |
+------+-------+----------+-------+----------+
5 rows in set (0.00 sec)
0 голосов
/ 24 сентября 2019

Я думаю, что ваш вопрос нуждается в немного большем размышлении, но вы можете получить что-то с помощью простых объединений и объединения

drop table if exists dates,customers,employees,data;
create table Dates 
(id  int,  fk_idCustomers int,   fk_idEmployee int);
insert into dates values
(1   ,  1   ,            2);

create table Customers 
(id int,   fk_idData int);
insert into customers values
(1  ,   1),
(1  ,   3);

create table employees
(id  int,  fk_idData int);
insert into employees values
(2  ,   2);

create table Data 
(id int,   Name varchar(20),   LastName varchar(20));
insert into data values
(1   ,  'John'    ,  'Doe'),
(2   ,  'John1'   ,  'Doe1'),
(3   ,  'John3'   ,  'Doe3');

select d.id,d.name,d.lastname 
from   dates
join   customers c on c.id = dates.fk_idcustomers
join   data d on d.id = c.fk_iddata
union all
select d.id,d.name,d.lastname 
from   dates
join   employees e on e.id = dates.fk_idemployee
join   data d on d.id = e.fk_iddata
;

+------+-------+----------+
| id   | name  | lastname |
+------+-------+----------+
|    1 | John  | Doe      |
|    3 | John3 | Doe3     |
|    2 | John1 | Doe1     |
+------+-------+----------+
3 rows in set (0.00 sec)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...