5
回答
按标签查询主题的sql怎么写比较合理
终于搞明白,存储TCO原来是这样算的>>>   

主题(topic)与标签(tag)是多对多关系。表达能力不好,我直接上一段代码:

StringBuilder sql = new StringBuilder();
List<Object> params = new ArrayList<Object>();
sql.append(" select distinct t.* from topic t ");
sql.append(" left join topic_tag tt on tt.topic_id=t.id ");
// 标签查询
if (tagIdArr != null && tagIdArr.length > 0) {
	sql.append(" where tt.tag_id in (");
	for (int i = 0; i < tagIdArr.length; i++) {
		if (i != tagIdArr.length - 1) {
			sql.append(" ?, ");
		} else {
			sql.append(" ? ");
		}
		params.add(tagIdArr[i]);
	}
	sql.append(" ) ");
}



这是我现在的方法,表topic左连接topic_tag表,最后查询到多个重复记录再去重。

请问,你们都是怎么做的,有没有什么好的方法?

举报
台俊峰
发帖于4年前 5回/242阅
顶部