Wie kann ich FIND_IN_SET in einer JOINED-Tabelle verwenden?

Ich habe 2 Tische:

Benutze: Namen registrierter Blutspender mit ihrer Blutgruppe.Blu: enthält Blutgruppen und Blutverträglichkeiten. Beispiel: Blut Nr. 5 (A-) kann Blutspenden von 5 (A-) und 6 (O-) erhalten.

Ich muss ein Suchformular erstellen, das potenzielle Blutspender abfragt. Das Formular ermöglicht es dem Benutzer, nach bestimmten Blutspendern zu suchen. Wenn ich nach Blutgruppe 5 (A-) suche, sollte die Abfrage alle Benutzer zurückgeben, die 5 (A-) und 6 (O-) Blutgruppen haben, und die resultierende Liste sollte sowohl den Namen als auch die Blutgruppe jedes Benutzers anzeigen .

Ich habe Folgendes versucht:

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

Dies bringt nur andere Benutzer mit, die die genaue gesuchte Blutgruppe haben, aber nicht alle kompatiblen Blutgruppen.

Dann habe ich diese andere Abfrage versucht. Dadurch werden alle kompatiblen Blutgruppen durchsucht, die Ergebnisse werden jedoch auch nach der Blutgruppe gefiltert (Aufzeichnungen zur Blutgruppe 6 sollten ebenfalls angezeigt werden, da dasreceive Blutsäule ID 5 enthält5,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)

... aber aus irgendeinem Grund werden nicht die richtigen Zeilen angezeigt. Ich sehe einige A +, AB +, A- Datensätze und es sollte nur A- und O- Datensätze geben.

Hier sind Tabellenstrukturen in jsfiddle.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage