tabela Pracownicy
Kod
+--------------+--------+--------+
| id_pracownik | type | status |
+--------------+--------+--------+
| 7 | normal | 0 |
+--------------+--------+--------+
| 8 | normal | 0 |
+--------------+--------+--------+
| 9 | boss | 1 |
+--------------+--------+--------+
| 10 | normal | 0 |
+--------------+--------+--------+
| 11 | normal | 0 |
+--------------+--------+--------+
| 12 | boss | 0 |
+--------------+--------+--------+
| id_pracownik | type | status |
+--------------+--------+--------+
| 7 | normal | 0 |
+--------------+--------+--------+
| 8 | normal | 0 |
+--------------+--------+--------+
| 9 | boss | 1 |
+--------------+--------+--------+
| 10 | normal | 0 |
+--------------+--------+--------+
| 11 | normal | 0 |
+--------------+--------+--------+
| 12 | boss | 0 |
+--------------+--------+--------+
tabela Firmy
Kod
+----------+--------------+---------------------+
| id_firma | pracownik_id | pracownik_parent_id |
+----------+--------------+---------------------+
| 1 | 7 | 9 |
+----------+--------------+---------------------+
| 2 | 8 | 9 |
+----------+--------------+---------------------+
| id_firma | pracownik_id | pracownik_parent_id |
+----------+--------------+---------------------+
| 1 | 7 | 9 |
+----------+--------------+---------------------+
| 2 | 8 | 9 |
+----------+--------------+---------------------+
... wyciągnąć dane pracowników (Pracownicy.id_pracownik, Pracownicy.status), których zwierzchnik Pracownicy.type='boss' ma Pracownicy.status=1. By wynikiem była taka tabela:
Kod
+--------------+--------+--------+
| id_pracownik | type | status |
+--------------+--------+--------+
| 7 | normal | 0 |
+--------------+--------+--------+
| 8 | normal | 0 |
+--------------+--------+--------+
| id_pracownik | type | status |
+--------------+--------+--------+
| 7 | normal | 0 |
+--------------+--------+--------+
| 8 | normal | 0 |
+--------------+--------+--------+
Próbuję:
Kod
SELECT Pracownicy.id_pracownik, Pracownicy.type, Pracownicy.status, Firmy.id
FROM `Pracownicy`
LEFT JOIN `Pracownicy` AS `Pracownicy2`
ON `Pracownicy2`.`id` =`Pracownicy`.`id`
LEFT JOIN `Firmy`
ON `Pracownicy`.`id` = `Firmy`.`pracownik_parent_id`
WHERE `Pracownicy`.`id` = `Firmy`.`pracownik_parent_id`
AND `Pracownicy2`.`type` = 'boss'
AND `Pracownicy2`.`status` = '1'
FROM `Pracownicy`
LEFT JOIN `Pracownicy` AS `Pracownicy2`
ON `Pracownicy2`.`id` =`Pracownicy`.`id`
LEFT JOIN `Firmy`
ON `Pracownicy`.`id` = `Firmy`.`pracownik_parent_id`
WHERE `Pracownicy`.`id` = `Firmy`.`pracownik_parent_id`
AND `Pracownicy2`.`type` = 'boss'
AND `Pracownicy2`.`status` = '1'
ale wychodzi mi :
Kod
+--------------+--------+--------+
| id_pracownik | type | status |
+--------------+--------+--------+
| 9 | boss | 1 |
+--------------+--------+--------+
| 9 | boss | 1 |
+--------------+--------+--------+
| id_pracownik | type | status |
+--------------+--------+--------+
| 9 | boss | 1 |
+--------------+--------+--------+
| 9 | boss | 1 |
+--------------+--------+--------+