我有2个表 - 课程包含课程的id和名称以及包含每门课程标签的tagCourse.
course tagcourse
------------ ----------------
PK id_course PK tag
name PK, FK id_course
Run Code Online (Sandbox Code Playgroud)
我想编写一个函数,通过给定的标签数组搜索课程,并按匹配标签的数量排序.但是我不知道如何以有效的方式正确地编写它.请帮我.
即.
CREATE OR REPLACE FUNCTION searchByTags(tags varchar[])
RETURNS SETOF.....
RETURN QUERY SELECT * FROM course c INNER JOIN tagcourse tc ON c.id_course = tc.id_course
WHERE ??? ORDER BY ???
END....
Run Code Online (Sandbox Code Playgroud) sql postgresql aggregate sql-order-by set-returning-functions