SELECT
lw.Lunwen_name AS cgname,
r1.rewardname AS reward
FROM
cg_reward_info r1,
cg_lunwen_info lw
WHERE
lw.Lunwen_ID = r1.cgid
AND r1.cgflag = 1
UNION ALL

SELECT
xm.project_name,
r2.rewardname
FROM
cg_project_info xm,
cg_reward_info r2
WHERE
xm.project_id = r2.cgid
AND r2.cgflag = 2

UNION ALL
SELECT
zz.bookname,r3.rewardname
FROM
cg_book_info zz,
cg_reward_info r3
WHERE
zz.book_id=r3.cgid AND r3.cgflag=3三张表 论文lw、项目xm、书籍zz ,分别在获奖表reward_info 中存入他们的唯一id,且标志字段flag 1为论文,2为项目,3为书籍。需求为 查询出所有获奖的项目论文以及书籍的 名称和获奖名字。以上sql语句可以实现这个需求,请问还有别的sql语句实现吗,怎么优化这条语句呢?求教!