Как я могу использовать FIND_IN_SET в таблице JOINED?

У меня есть 2 таблицы:

пользователь: имена зарегистрированных доноров крови с их группой крови.кровь: содержит группы крови и совместимость крови. например: идентификатор крови 5 (A-) может принимать донорство крови от 5 (A-) и 6 (O-).

Я должен создать поисковую форму, которая получает потенциальных доноров крови. Форма позволяет пользователю искать доноров определенной группы крови. Если я ищу группу крови 5 (A-), запрос должен возвращать всех пользователей, которые имеют 5 (A-) и 6 (O-) групп крови, и в результирующем списке должны отображаться как имя, так и группа крови каждого пользователя. ,

Я пробовал следующее:

SELECT user.name, blood.name AS blood FROM user JOIN blood ON blood.id_blood = user.id_blood WHERE user.id_blood = 5

Это приводит только к другим пользователям, которые имеют точную группу крови, которая была найдена, но не все совместимые группы крови.

Затем я попробовал этот другой запрос. Будет выполнен поиск всех совместимых групп крови, но результаты также будут отфильтрованы по группе крови (записи группы крови 6 также должны отображаться, посколькуreceive колонка крови id 5 содержит5,6.)

SELECT user.name AS name, blood.name AS blood FROM user JOIN blood ON blood.id_blood = user.id_blood WHERE FIND_IN_SET(5, blood.receive)

... но по какой-то причине он не отображает правильные строки. Я вижу некоторые A +, AB +, A- записи, и там должны быть только A- и O- записи.

Вот структуры таблиц вjsfiddle.

Ответы на вопрос(1)

Ваш ответ на вопрос