这是我的代码,当我运行它时,它将显示一个错误:每个派生表都必须有一个别名,但是我尝试了不同的方法来添加别名,这是行不通的。有人知道如何解决它吗?
SELECT *
FROM (SELECT * FROM student s WHERE dept_name='Comp.Sci')
NATURAL FULL OUTER JOIN
(SELECT * FROM takes t WHERE semester='Spring' AND YEAR=2009);
答案 0 :(得分:1)
在mysql中,没有完整的外部联接,但是您可以使用并集(最终向我们展示一个适当的数据样本以建议更好的查询并集)
SELECT * FROM student s WHERE dept_name='Comp.Sci'
union
SELECT * FROM takes t WHERE semester='Spring' AND YEAR=2009
对于您的代码,每个表都需要一个别名,例如:每个from()
SELECT *
FROM (SELECT * FROM student s WHERE dept_name='Comp.Sci') t1
JOIN ........
(SELECT * FROM takes t WHERE semester='Spring' AND YEAR=2009) t2;
无论如何,如果在派生选项卡中具有相同的列名,则不能使用*(全选),但请使用显式的列名和别名以避免歧义