使用仅连接两个表的三个表来选择数据

时间:2016-04-28 10:33:32

标签: sql oracle

我正在尝试使用三个表来选择数据。我需要从一个演员和合约表中获得一个股票编号和合约日期,其中电影的名称= x来自电影表。

我做了:

SELECT equity_number, contract_date
FROM actor,
     contract,
     film
WHERE actor.equity_number = contract.equity_number
  and title = 'x'

虽然我得到一个含糊不清的列错误。

2 个答案:

答案 0 :(得分:1)

您与电影桌没有任何关系。 并使用现代的方式编写sql:)

SELECT a.equity_number, c.contract_date
FROM actor a
INNER JOIN contract c on a.equity_number = c.equity_number
INNER JOIN film f on f.SOMERELATIONSHIPID = c.SOMERELATIONSHIPID
WHERE f.title = 'x'

答案 1 :(得分:0)

我建议您使用JOINS而不是旧的逗号分隔语法。在为每个表设置别名并在选择列表中使用这些别名之后。类似的东西:

SELECT a.equity_number, 
       c.contract_date
FROM actor a
LEFT JOIN contract c ON a.equity_number = c.equity_number
LEFT JOIN film f ON a.film_id = f.id -- there should be related columns 
          AND f.title = 'x'
相关问题