Как объеденить два запроса?
есть таблица:
CREATE TABLE `candidats` ( `id` int(11) NOT NULL, `id_v` int(11) NOT NULL, `id_p` int(11) DEFAULT NULL, `id_c` int(11) DEFAULT NULL, `img_c` varchar(255) DEFAULT NULL, `id_agency` int(11) NOT NULL, `date_add` varchar(100) NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=utf8; |
CREATE TABLE `candidats` ( `id` int(11) NOT NULL, `id_v` int(11) NOT NULL, `id_p` int(11) DEFAULT NULL, `id_c` int(11) DEFAULT NULL, `img_c` varchar(255) DEFAULT NULL, `id_agency` int(11) NOT NULL, `date_add` varchar(100) NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
с записями кандидатов для какого-либо агенства
INSERT INTO `tori_vacancie_candidats` (`id`, `id_v`, `id_p`, `id_c`, `img_c`, `id_user`, `date_add`) VALUES (13, 305, NULL, 185, 'Media/images/portfolio/185/simonaumilio90.jpg', 181, '1663151218'), (14, 297, NULL, 186, 'Media/images/portfolio/186/hafydyyahya.jpg', 160, '1663164538'), (15, 330, NULL, 188, 'Media/images/portfolio/188/aurorarexhaj22.jpg', 141, '1663361459'), (18, 344, NULL, 189, 'Media/images/portfolio/189/TizianoAzzalin.jpg', 160, '1663498565'), (45, 752, NULL, 314, 'Media/images/portfolio/314/SimonettaVettori.pdf', 181, '1675437808'), (44, 785, NULL, 313, 'Media/images/portfolio/313/MASSIMILIANOSIMIONATO.pdf', 181, '1675424493'), (43, 787, NULL, 312, 'Media/images/portfolio/312/MassimilianoVASSELAI.jpg', 181, '1675337681'), (42, 783, NULL, 311, 'Media/images/portfolio/311/ZeeshanIbrahimi.pdf', 181, '1675293988'), (46, 321, NULL, 317, 'Media/images/portfolio/317/AlfredoFetahi.pdf', 164, '1676289208'), (47, 808, NULL, 318, 'Media/images/portfolio/318/AhmedElwaraky.jpg', 160, '1676659935'), (48, 812, NULL, 319, 'Media/images/portfolio/319/PasqualeMaggio.pdf', 203, '1676706582'), (49, 810, NULL, 320, 'Media/images/portfolio/320/MarinellaBerto.pdf', 181, '1676707268'), (50, 812, NULL, 321, 'Media/images/portfolio/321/FabioNagro.pdf', 203, '1676708236'), (51, 813, NULL, 322, 'Media/images/portfolio/322/MircoDalan.pdf', 203, '1676719323'), (52, 816, NULL, 323, 'Media/images/portfolio/323/AngeloAttanasio.pdf', 141, '1676884258'), (53, 824, NULL, 324, 'Media/images/portfolio/324/SimonaRota.pdf', 141, '1677017006'), (54, 814, NULL, 325, 'Media/images/portfolio/325/NicolaRizzo.pdf', 203, '1677058825'), (55, 824, NULL, 326, 'Media/images/portfolio/326/AdeelAhmed.pdf', 141, '1677325852'), (56, 823, NULL, 327, 'Media/images/portfolio/327/RonaldArteaga.pdf', 141, '1677395722'), (57, 832, NULL, 329, 'Media/images/portfolio/329/AssuntaLombardo.pdf', 181, '1677433498'), (58, 835, NULL, 330, 'Media/images/portfolio/330/FabianoKasli.jpg', 181, '1677538910'), (59, 427, NULL, 331, 'Media/images/portfolio/331/NirodhaFernando.jpg', 139, '1677657549'), (60, 832, NULL, 334, 'Media/images/portfolio/334/EditNizsaloczki.pdf', 181, '1677802582'), (61, 843, NULL, 335, 'Media/images/portfolio/335/BledarFerra.jpg', 141, '1677842326'), (62, 777, NULL, 336, 'Media/images/portfolio/336/AlessandroUsce.pdf', 181, '1678128750'), (63, 844, NULL, 337, 'Media/images/portfolio/337/AngeloAngelo.pdf', 164, '1678178386'), (64, 845, NULL, 338, 'Media/images/portfolio/338/BuosiBuosi.pdf', 181, '1678352266'), (65, 856, NULL, 341, 'Media/images/portfolio/341/MoutarouBarry.pdf', 181, '1678392451'); |
INSERT INTO `tori_vacancie_candidats` (`id`, `id_v`, `id_p`, `id_c`, `img_c`, `id_user`, `date_add`) VALUES (13, 305, NULL, 185, 'Media/images/portfolio/185/simonaumilio90.jpg', 181, '1663151218'), (14, 297, NULL, 186, 'Media/images/portfolio/186/hafydyyahya.jpg', 160, '1663164538'), (15, 330, NULL, 188, 'Media/images/portfolio/188/aurorarexhaj22.jpg', 141, '1663361459'), (18, 344, NULL, 189, 'Media/images/portfolio/189/TizianoAzzalin.jpg', 160, '1663498565'), (45, 752, NULL, 314, 'Media/images/portfolio/314/SimonettaVettori.pdf', 181, '1675437808'), (44, 785, NULL, 313, 'Media/images/portfolio/313/MASSIMILIANOSIMIONATO.pdf', 181, '1675424493'), (43, 787, NULL, 312, 'Media/images/portfolio/312/MassimilianoVASSELAI.jpg', 181, '1675337681'), (42, 783, NULL, 311, 'Media/images/portfolio/311/ZeeshanIbrahimi.pdf', 181, '1675293988'), (46, 321, NULL, 317, 'Media/images/portfolio/317/AlfredoFetahi.pdf', 164, '1676289208'), (47, 808, NULL, 318, 'Media/images/portfolio/318/AhmedElwaraky.jpg', 160, '1676659935'), (48, 812, NULL, 319, 'Media/images/portfolio/319/PasqualeMaggio.pdf', 203, '1676706582'), (49, 810, NULL, 320, 'Media/images/portfolio/320/MarinellaBerto.pdf', 181, '1676707268'), (50, 812, NULL, 321, 'Media/images/portfolio/321/FabioNagro.pdf', 203, '1676708236'), (51, 813, NULL, 322, 'Media/images/portfolio/322/MircoDalan.pdf', 203, '1676719323'), (52, 816, NULL, 323, 'Media/images/portfolio/323/AngeloAttanasio.pdf', 141, '1676884258'), (53, 824, NULL, 324, 'Media/images/portfolio/324/SimonaRota.pdf', 141, '1677017006'), (54, 814, NULL, 325, 'Media/images/portfolio/325/NicolaRizzo.pdf', 203, '1677058825'), (55, 824, NULL, 326, 'Media/images/portfolio/326/AdeelAhmed.pdf', 141, '1677325852'), (56, 823, NULL, 327, 'Media/images/portfolio/327/RonaldArteaga.pdf', 141, '1677395722'), (57, 832, NULL, 329, 'Media/images/portfolio/329/AssuntaLombardo.pdf', 181, '1677433498'), (58, 835, NULL, 330, 'Media/images/portfolio/330/FabianoKasli.jpg', 181, '1677538910'), (59, 427, NULL, 331, 'Media/images/portfolio/331/NirodhaFernando.jpg', 139, '1677657549'), (60, 832, NULL, 334, 'Media/images/portfolio/334/EditNizsaloczki.pdf', 181, '1677802582'), (61, 843, NULL, 335, 'Media/images/portfolio/335/BledarFerra.jpg', 141, '1677842326'), (62, 777, NULL, 336, 'Media/images/portfolio/336/AlessandroUsce.pdf', 181, '1678128750'), (63, 844, NULL, 337, 'Media/images/portfolio/337/AngeloAngelo.pdf', 164, '1678178386'), (64, 845, NULL, 338, 'Media/images/portfolio/338/BuosiBuosi.pdf', 181, '1678352266'), (65, 856, NULL, 341, 'Media/images/portfolio/341/MoutarouBarry.pdf', 181, '1678392451');
где id_c - ид кандидата и id_agency - ид агентстыва, которое может повторяться
как можно, или можно ли вообще выбрать одним запросом данные так, чтоб повторяющиеся агенства были сгруппированы и для каждого агенства посчитать сколько у него кандидатов?
Дополнительно:
Вы показали 2 таблицы про кандидатов, но ни одной про агентства.
Можно ли выбрать - можно. Вот болванка, исправьте её под свой случай:
SELECT `a`.* , COUNT(`c`.`id_c`) FROM agencies AS `a` LEFT JOIN `candidats` AS `c` ON ( `a`.`id`=`c`. `id_agency`) GROUP BY `a`.`id` |
SELECT `a`.* , COUNT(`c`.`id_c`) FROM agencies AS `a` LEFT JOIN `candidats` AS `c` ON ( `a`.`id`=`c`. `id_agency`) GROUP BY `a`.`id`
https://dev.mysql.com/doc/refman/8.0/en/example-ma...
https://dev.mysql.com/doc/refman/8.0/en/counting-r...
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос
Для объединения двух запросов в PHP можно воспользоваться оператором UNION. UNION объединяет результаты двух или более SELECT запросов в один результат. Вот пример:
$query1 = "SELECT column1, column2 FROM table1 WHERE condition1"; $query2 = "SELECT column3, column4 FROM table2 WHERE condition2"; $finalQuery = $query1 . " UNION " . $query2; // Выполнение объединенного запроса $result = mysqli_query($connection, $finalQuery); if ($result) { // Обработка результатов while ($row = mysqli_fetch_assoc($result)) { // Доступ к данным в $row['column1'], $row['column2'], $row['column3'], $row['column4'] } } else { // Обработка ошибки запроса echo "Ошибка выполнения запроса: " . mysqli_error($connection); }
В данном примере мы объединяем два запроса $query1 и $query2 с помощью оператора UNION и сохраняем объединенный запрос в переменную $finalQuery. После этого мы выполняем объединенный запрос с помощью функции mysqli_query и обрабатываем результаты, полученные из базы данных.
Убедитесь, что оба запроса имеют одинаковое количество столбцов и их типы данных совпадают для успешного объединения с помощью UNION. Также учтите, что UNION автоматически удаляет дублирующиеся строки, если вы хотите сохранить все строки, используйте UNION ALL вместо UNION.