我有一个查询:
SELECT s.period, s.year, s.amount FROM salaries s
我只想从salaries表中选择周期和年份等于的行:
salaries
SELECT p.period, p.years FROM periods p
我知道最简单的方法是使用连接,但是问题是-在应用程序中,我只能在后面添加一个子句 WHERE
WHERE
因此,解决方案应该是:
SELECT s.period, s.year, s.amount FROM salaries s WHERE ...
那可能吗?
编辑: 结果应与以下相同:
SELECT s.period, s.year, s.amount FROM salaries s JOIN periods p ON s.period = p.period AND s.year = p.year
您可以为IN条件使用多个列:
IN
SELECT s.period, s.year, s.amount FROM salaries s where (s.year, s.period) in (select year, period from periods)
但是戈登的not exists解决方案可能更快。
not exists