Mysql 如何使用SQL join从四个表中获取数据
我有四个表,即registry\u item、publish\u registry、registry\u user和premium\u user。我想从注册表\项表中获取所有项,其中发布\项注册表表中的用户状态为1,并且注册表\项用户表中的用户不超过7天,或者用户是高级\项用户表中的高级用户。我试过这个Mysql 如何使用SQL join从四个表中获取数据,mysql,sql,database,Mysql,Sql,Database,我有四个表,即registry\u item、publish\u registry、registry\u user和premium\u user。我想从注册表\项表中获取所有项,其中发布\项注册表表中的用户状态为1,并且注册表\项用户表中的用户不超过7天,或者用户是高级\项用户表中的高级用户。我试过这个 SELECT * FROM publish_registry pr JOIN registry_item ri USING ( registry_id ) JOIN 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
很难用很少的信息来回答,正如其他人所说,请展示你所做的,以便其他人能够纠正你的答案,鉴于你的问题,我认为这可能有助于你理解你在寻找什么(最接近的答案)。但我没有使用join语句
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';
选择*
来自注册表项ri、公共注册表pr、注册表用户ru、高级用户pu
哪里
ri.primary\u key=pr.foreign\u key和pr.user\u status=1和
ri.primary\u key=ru.foreign\u key
和ru.user_date
如果有帮助,那就太好了!!或者陈述更多关于您工作的信息,以便我们提供帮助。:) 显示您尝试过的内容。您必须显示您的表结构。请小心将OR'd条件放在括号中。我怀疑这就是最后两个条件的含义。如果类别id发生变化,我会得到相同的数据。如果我将category_id设置为3,那么它的category_id 2Like@shawnt00的显示数据也应该与multiple
和
一起观察你的或
条件,应该类似于ri.category_id='2'和pr.status='1'和(ru.date\u added>NOW()-7或pu.registry\u id=ru.registry\u id)
这取决于您想做什么。