如何使用SQL连接从四个表中获取数据

问题描述:

我有四个表,即registry_item,publish_registry,registry_user和premium_user。我想从registry_item表中获取所有项目,其中publish_registry表中的用户状态为1,并且user_issue_user表中的用户不超过7天,或者用户是premium_user表中的高级用户。我已经试过这如何使用SQL连接从四个表中获取数据

SELECT * FROM publish_registry pr 
JOIN registry_item ri USING (registry_id) 
JOIN premium_user pu USING (registry_id) 
JOIN registry_user ru USING (registry_id) 
WHERE ri.category_id = '2' AND pr.status = '1' 
AND ru.date_added > NOW() - 7 OR pu.registry_id = ru.registry_id 
+0

显示你有什么尝试。 – 2015-02-11 06:55:00

+1

你将不得不显示你的表格结构。 – Cyclonecode 2015-02-11 06:55:14

+1

小心将OR'd条件置于括号内。我怀疑这就是最后两个条件的意图。 – shawnt00 2015-02-11 06:59:53

困难非常少的信息,并为其他人回答说,请告诉你做了什么,让别人可以纠正你的答案,你的问题我看到假定这可能帮助你理解你在找什么(最近的答案)。但我没有使用连接语句。

select * 
from registry_item ri,public_registry pr,registry_user ru,premium_user pu 
where 
    ri.primary_key=pr.foreign_key and pr.user_status=1 and 
    ri.primary_key=ru.foreign_key 
    and ru.user_date < DATE(DATE_SUB(curdate(), interval 7 Day)) 
    AND ri.primary_key=pu.foreign_key and pu.user = 'premium'; 

如果它是有用的,那么很棒!或者提供更多有关您工作的信息,以便我们提供帮助。 :)