2015-02-11 77 views
0

我有四個表,即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

回答

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

如果它是有用的,那麼很棒!或者提供更多有關您工作的信息,以便我們提供幫助。 :)

相關問題