需要帮助来查询查找所有内容中的内容

时间:2012-03-20 02:58:56

标签: sql sql-server relational-division

好的,我正在使用publishers数据库和我需要提出的查询 是来查找在每家商店中销售副本的任何书籍的标题。

我正在处理的主要表格是titlesalesstore

这是我的尝试

  SELECT title, titles.title_id, stores.stor_id, sales.stor_id, stor_name
    from titles
     FULL OUTER JOIN sales on sales.title_id = titles.title_id
    FULL OUTER JOIN stores on stores.stor_id = sales.stor_id
    --WHERE sales.stor_id = stores.stor_id AND sales.title_id = titles.title_id

我知道应该怎么做。我需要加入titles.title_idsales.title_id,然后检查sales.stor_name是否等于stores.stor_name

4 个答案:

答案 0 :(得分:2)

select t.title_id, t.title
from titles as t
where (select count(*) from stores) 
    = (select count(distinct store_id) from sales where title_id=t.title_id)

答案 1 :(得分:2)

试试这个:

select t1.title from titles t1
where t1.title_id not in (
  select sub.title_id from sales sa
  right join (
    select t.title_id, stor_id from titles t, stores st
  ) Sub on sa.title_id = sub.title_id and sa.stor_id = sub.stor_id
  where sa.title_id is null)

Example

答案 2 :(得分:1)

你有没有尝试在mysql中使用“IN”..你的问题似乎缺乏细节,但据我所知,你需要使用“IN”功能

http://spin.atomicobject.com/2011/03/25/mysql-in-query-performance/

答案 3 :(得分:0)

您的查询应如下所示:

select titles
  from title, sales, store
 where (join conditions here)

连接条件应该是标题和商店表以及商店到销售表的关联。例如,如果我的标题表有ISBN字段而我的商店表有ISBN字段,那么您应该包含title.isbn = store.isbn。您需要为所有加入条件添加and