データベースに2つのテーブルがあります。1) tbl_lab_checkup 2) tbl_lab
tbl_lab には検査室のすべての記録があり、tbl_lab_checkup には検査室が提供する検査のすべての記録があります。
以下はテーブルのフィールドです
1) tbl_lab_checkup
-- labcheckupid (pk)
-- labid (fk)
-- checkupid (fk)
-- cost
-- discount
2) tbl_lab
-- labid (pk)
-- labname
-- labarea (fk)
'areaid'=1 と 'checkupid' が配列にあり、"," (1,2) で接続しています。
私が望むのは、配列内のすべての検査を提供する areaid=1 で利用可能なすべての lablist を取得することです (1,2)
次のクエリを試しましたが、間違った結果が得られました。
SELECT tlc .* FROM tbl_lab_checkup tlc
INNER JOIN tbl_lab lb ON
tlc.labid = lb.labid
WHERE
tlc.checkupid IN (1,2) AND lb.labarea=1
GROUP BY lb.labid
lab が配列で 1 つの ID しか提供しない場合でも、結果が返されます。誰でもこれに対する解決策を持っています。
フィドルをチェックしてください:http://sqlfiddle.com/#!2/5c674/1