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

时间:2015-02-11 06:53:53

标签: mysql sql database

我有四个表,即registry_item,publish_registry,registry_user和premium_user。我想从registry_item表中获取所有项目,其中user_registry表中的用户状态为1,用户在registry_user表中不超过7天,或者用户是premium_user表中的高级用户。我试过这个

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

1 个答案:

答案 0 :(得分:0)

很难以非常少的信息回答,正如其他人所说,请展示你做了什么,以便其他人可以纠正你的回答,看到你的问题,我认为这可能会帮助你理解你在寻找什么(最近的答案) 。但我没有使用连接语句。

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';

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