Помогите с SQL- запросом к таблице
Только начинаю разбираться с базами данных. Есть субд MariaDb с таблицами. Данные дёргаются php скриптом с привлечением библиотеки RedBean. Там есть метод для выборки R::getAll(). Помогите составить SQL запрос для таблиц с реляцией. Ниже таблицы из бд.
>>>|maintable|<<<
id | phone| organizationKey | podrazdelenieKey| doljnostKey | serialnumber | invnumber | primechanie
1 2392 | 114 | 225 | 333 | sn123456 | inv123456 | comment...2392
2 2659 | 113 | 224 | 333 | sn155456 | inv123443 | comment...2659
3 2680 | 114 | 224 | 335 | sn166456 | inv124356 | comment...2680
4 2681 | 114 | 224 | 334 | sn127756 | inv123456 | comment...2681
5 2753 | 114 | 222 | 333 | sn432456 | inv123456 | comment...2753
6 2789 | 113 | 225 | 333 | sn134456 | inv433456 | comment...2789
7 2825 | 114 | 224 | 335 | sn223456 | inv125456 | comment...2825
8 2826 | 113 | 225 | 336 | sn126656 | inv177456 | comment...2826
9 2876 | 113 | 222 | 336 | sn426656 | inv199956 | comment...2876
10 2885 | 114 | 224 | 336 | sn123436 | inv127756 | comment...2885
_____________________________________________________________
>>>|orgtable|<<<
id | organization | IDorganization
1 | organization_odin | 111
2 | organization_dva | 112
3 | organization_tri | 113
4 | organization_chetire | 114
_____________________________________________________________
>>>|podrazdeltable|<<<
id | podrazdelenie | IDpodrazdeleniya
1 | podrazdelenie_odin | 222
2 | podrazdelenie_dva | 223
3 | podrazdelenie_tri | 224
4 | podrazdelenie_chetire | 225
_____________________________________________________________
>>>|doljnosttable|<<<
id | doljnost | IDdoljnosti
1 | doljnost_odin | 333
2 | doljnost_dva | 334
3 | doljnost_tri | 335
4 | doljnost_chetire | 336
Как видно, в главной таблице maintable есть поля organizationKey, podrazdelenieKey, doljnostKey. Они ссылаются на другие таблицы - orgtable, podrazdeltable, doljnosttable соответсвенно. Метод R::getAll()
формирует массив на выходе. Вот такой массив.
[0] => Array
(
[id] => 1
[phone] => 2392
[serialnumber] => sn123456
[invnumber] => inv123456
[primechanie] => comment...2392
[organizationKey] => 114
[podrazdelenieKey] => 225
[doljnostKey] => 333
[organization] => organization_chetire
[podrazdelenie] => podrazdelenie_dva
[doljnost] => doljnost_odin
)
[1] => Array
(
[id] => 2
[phone] => 2659
[serialnumber] => sn155456
[invnumber] => inv123443
[primechanie] => comment...2659
[organizationKey] => 113
[podrazdelenieKey] => 224
[doljnostKey] => 333
[organization] => organization_tri
[podrazdelenie] => podrazdelenie_tri
[doljnost] => doljnost_odin
)
SQL запрос выглядит так (пока громоздкий):
R::getAll(
"SELECT *,
`maintable`.`id`,
`maintable`.`phone`,
`maintable`.`serialnumber`,
`maintable`.`invnumber`,
`maintable`.`primechanie`
FROM `maintable`
LEFT JOIN orgtable ON `maintable`.`organizationKey`=`orgtable`.`id`
LEFT JOIN podrazdeltable ON `maintable`.`podrazdelenieKey`=`podrazdeltable`.`id`
LEFT JOIN doljnosttable ON `maintable`.`doljnostKey`=`doljnosttable`.`id`
ORDER BY `maintable`.`id` ASC LIMIT 2" );
Как мне сделать sql запрос, чтобы в массиве не было organizationKey, podrazdelenieKey, doljnostKey и primechanie ? Сейчас, как видно, в SELECT
стоит звезда, что означает вывести все записи. Но как ограничить их, и чтобы в массиве остались только читабельные и нужные мне названия (такие как [podrazdelenie] => podrazdelenie_dva
, которые в полях доп таблиц).На выходе вот такой массив чтобы получился (для эконимии места указал один элемент массива)
[0] => Array
(
[id] => 1
[phone] => 2392
[serialnumber] => sn123456
[invnumber] => inv123456
[organization] => organization_chetire
[podrazdelenie] => podrazdelenie_dva
[doljnost] => doljnost_odin
)
...
Т.е. из главной таблицы взяли несколько значений (не все), и из дополнительных таблиц названия полей и читабельные значения.
п.с. индексы в таблицах настроены