如何使用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
答
困难非常少的信息,并为其他人回答说,请告诉你做了什么,让别人可以纠正你的答案,你的问题我看到假定这可能帮助你理解你在找什么(最近的答案)。但我没有使用连接语句。
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';
如果它是有用的,那么很棒!或者提供更多有关您工作的信息,以便我们提供帮助。 :)
显示你有什么尝试。 – 2015-02-11 06:55:00
你将不得不显示你的表格结构。 – Cyclonecode 2015-02-11 06:55:14
小心将OR'd条件置于括号内。我怀疑这就是最后两个条件的意图。 – shawnt00 2015-02-11 06:59:53