好的,我正在使用publishers数据库和我需要提出的查询 是来查找在每家商店中销售副本的任何书籍的标题。
我正在处理的主要表格是title
,sales
和store
这是我的尝试
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_id
到sales.title_id
,然后检查sales.stor_name
是否等于stores.stor_name
答案 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)
答案 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
。