如何编写此JOIN查询?没有常见的表格数据

时间:2015-10-10 22:11:39

标签: mysql sql management-studio-express

我需要显示以超过20美元的价格出售商品的人的名字和姓氏,我需要加入标题和作者表,但他们没有任何常用密钥?我该怎么做呢?我只需要显示他们的名字作为输入,这是我到目前为止所得到的结果。我只是在学习,所以尽量不要太技术化

以下是列名:

authors: pk- au_id
             au_fname
             au_lname
titles: pk- title_id
            title   
            price
        fk- pub_id

这是我到目前为止所做的:

select price, au_lname, au_fname
from titles JOIN authors
on authors.au_id=titles.pub_id

1 个答案:

答案 0 :(得分:1)

看起来您还有titleauthor表。这将有助于您的示例代码中的查询。但是,在这种情况下不需要此表,因为您的问题实际上是询问销售人员,而不是作者。你真的想要这样的东西:

select distinct e.firstname, e.lastname
from sales s
inner join employee e on e.empl_id = s.empl_id
where s.itemprice >= 20

当然,我不得不在这里猜测你的列名。您可以对此进行扩展,以包含有关这些项目的标题和作者的信息,如下所示:

select distinct e.firstname as SalePersonFirstName, e.lastname as SalesPersonLastName
    , t.Title, a.Lastname As AuthorLastName, a.firstname as FirstName
    , s.itemprice
from sales s
inner join employee e on e.empl_id = s.empl_id
inner join titles t on t.title_id = sales.title_id
inner join titleauthors ta on ta.title_id = t.title_id
inner join authors a on a.au_id = ta.au_id
where s.itemprice >= 20