mysql — поисковый запрос PHP

Я пытаюсь выполнить поиск по приложению CV, информация о CV хранится во многих таблицах, и я пытаюсь найти резюме, содержащее определенную информацию, такую ​​как (квалификации и образование).

Итак, я отправил критерии поиска через POST:

$ _POST [‘qualifications’] = массив (5,9) и
$ _POST [‘educations’] = array (13);

и я хочу найти резюме, в котором есть только эта информация.

таблицы выглядят так:
таблица cv_qualification: идентификатор, резюме_ид, квалификация_ид.
таблица cv_educations: id, resume_id, educations_id.

Я пытался использовать (WHERE IN заявления): квалификации

select * FROM cv_qualifications where qualifications_id IN (19,5);

select * FROM cv_educations where educations_id IN (13);

но эти заявления приносят все резюме, которые имеют qualification_id 19 или же qualification_id 5 или же educations_id = 13.

Спасибо за ваше время.

Это мой код:

$keys = array_keys($_POST);

$found = array();
foreach ($keys as $key) {
$found[$key] = DataBase::query("SELECT * FROM cv_" . $key . " WHERE " . $key . "_id IN (?)", array($_POST[$key]));
}

echo count($found)."\n";
print_r($found)."\n";

0

Решение

Предполагая, что в обеих таблицах используется общий файл resume_id, вы можете использовать его для объединения ваших таблиц в один запрос, который будет:

SELECT * FROM cv_qualifications q
JOIN cv_educations e ON e.resume_id = q.resume_id
where q.qualifications_id IN (5,19)
and e.educations_id IN (13)

SELECT * в этом примере будет извлекать только из cv_qualifications, если вы хотите, чтобы поля из обеих таблиц вы могли заменить SELECT q.*, e.* FROM ...

1

Другие решения

Попробуйте с помощью одного запроса ВНУТРЕННЕЕ СОЕДИНЕНИЕ

select * FROM cv_qualifications as cq
INNER JOIN cv_educations as ce ON cq.resume_id=ce.resume_id
WHERE cq.qualifications_id IN (19,5) and ce.educations_id IN (13);
0

Посмотри на это :-

SELECT * FROM cv_qualifications q
JOIN cv_educations e ON e.resume_id = q.resume_id
where (q.qualifications_id = '5'
or q.qualifications_id = '9')
and e.educations_id = '13'"
0
По вопросам рекламы [email protected]