根据List里多个String 查对应的包含同样String的类
Sql
SELECT meid id,mname NAME,COUNT(mname) spot, brand,spec FROM
(SELECT p.id pid, m.id meid,c.id cid, p.`name` pname , m.`name` mname, m.`brand`, m.`spec` FROM `pathology` p RIGHT JOIN `cure` c ON p.`id`=c.`pathology_id` LEFT JOIN `medicine`
m ON c.`medicine_id`=m.`id` WHERE p.`name`='下火' UNION
SELECT p.id pid, m.id meid,c.id cid, p.`name` pname , m.`name` mname , m.`brand`, m.`spec` FROM `pathology` p RIGHT JOIN `cure` c ON p.`id`=c.`pathology_id` LEFT JOIN `medicine`
m ON c.`medicine_id`=m.`id` WHERE p.`name`='感冒' )AS pmc GROUP BY mname ORDER BY spot DESC
union 等同where 字段 in(item1,item2)
SELECT meid id,mname NAME,COUNT(mname) spot, brand,spec FROM
(SELECT p.id pid, m.id meid,c.id cid, p.`name` pname , m.`name` mname, m.`brand`, m.`spec` FROM `pathology` p
RIGHT JOIN `cure` c ON p.`id`=c.`pathology_id` LEFT JOIN `medicine`
m ON c.`medicine_id`=m.`id` WHERE p.`name` IN ('感冒','下火') )AS pmc GROUP BY mname ORDER BY spot DESC
mybatis /mapper.xml
</resultMap>
<select id="findPathlogy2Medicine" resultMap="BaseResultMap">
SELECT meid id,mname NAME, brand,spec ,COUNT(mname) spot FROM
(SELECT p.id pid, m.id meid,c.id cid, p.`name` pname , m.`name` mname, m.`brand`, m.`spec` FROM `pathology` p RIGHT JOIN `cure` c ON p.`id`=c.`pathology_id` LEFT JOIN `medicine`
m ON c.`medicine_id`=m.`id` WHERE p.`name` in
<foreach collection="list" index="index" item="p" open="(" separator="," close=")">
#{p}
</foreach>
)AS pmc GROUP BY mname ORDER BY spot DESC
</select>
表/类
medicine
@Entity
@Data
public class Medicine {
@Id
private String id;
private String name;
private String brand;
private String spec;
private String spot;
}
Pathology
@Entity
@Data
public class Pathology {
@Id
private String id;
private String name;
}
中间表cure
@Entity
@Data
public class Cure {
@Id
private String id;
private String medicineId;
private String pathologyId;
}
数据库查的
postman查的
{“data”:[{“id”:“1”,“name”:“板蓝根”,“brand”:“小蓝”,“spec”:“10”,“spot”:“2”},{“id”:“4”,“name”:“夏桑菊”,“brand”:“小夏”,“spec”:“10”,“spot”:“1”}],“code”:0,“message”:“success”}
关于postman传参List
json 原生格式[“item1”,"item2]