患者が薬を受け取っていないかどうかを検索できるクエリを作成しようとしています。最初、私は次のようなことができると思いました。
INNER JOIN prescript p ON p.id = patient.id AND p.med_id NOT IN (5128)
ここp.id
で、patient.id
は患者IDを示しp.med_id
、薬剤IDを指し5128
、クエリで使用されている薬剤です。このクエリの問題は、患者が他の薬を服用している場合、それらが表示されることです。したがって、患者が5128の薬を服用しているだけでなく、別の薬を服用している場合は、それらが表示されます。しかし、私は患者がその薬をまったく持っていない場合にのみ患者を返したいと思っています。ここで注意が必要なのは、このいずれでも患者IDを知ることができないということです。だから私はこれに似た解決策が必要です:
INNER JOIN prescript p ON p.id = patient.id AND (SELECT med_id
FROM prescript
WHERE id = p.pid) NOT IN (5128)
すべてのmed_idを1つの文字列に連結できれば、これは可能だと思っていましたが、クエリビルダーを使用しているため、結合の追加と場所の追加のみに制限されているという問題があります。別名、使用できませんDECLARE
。