我们有两张桌子:
产品和商店
商店基本上可以有很多产品。我们从产品表中进行选择,但我们将其加入到商店表中,以便我们只选择来自当前“活跃”商店的产品。
但是,如果不是正在查看给定产品的STORE OWNER,我们只希望发生这种行为。
因此,基本上我想要做的是,有一个查询,我们可以提供当前登录的user_id到查询,并对stores表进行连接。如果提供的user_id与stores表中的user_id匹配,那么它就是商店所有者 - 我们应该允许他们查看产品[这将基本上加入不同的条件]。如果user_id与stores表中的user_id不同,则它是普通用户,不应该被允许查看该产品。
以下是我的两个问题:
店主
SELECT products.* from products
INNER JOIN stores
ON stores.id = products.store_id
AND stores.user_id = <supplied userid>
普通用户
SELECT products.* from products
INNER JOIN stores
ON stores.id = products.store_id
AND stores.is_active = 1
如果可能的话,我基本上想把它们放到一个查询中。
答案 0 :(得分:4)
SELECT products.* from products
INNER JOIN stores
ON stores.id = products.store_id
AND (stores.user_id = <supplied userid> OR stores.is_active = 1)
答案 1 :(得分:0)
两个内连接应该可以解决问题。
SELECT products.* from products
INNER JOIN stores owners_store ON ( owners_store.id = products.store_id AND owners_store.user_id = <supplied userid> )
INNER JOIN stores user_stores ON ( user_stores.id = products.store_id AND user_stores.is_active = 1 )