2012-07-30 64 views
0
SELECT t1.* FROM HOSTS AS t1 
WHERE 
t1.BOSS = 'BRUCE' 
OR (t1.BOSS_TYPE = 'manager' 
AND t1.BOSS_ID = 'BRUCE') 
OR t1.BOSS IN (SELECT t2.STORES FROM 
    FOLLOW_STORES AS t2 
WHERE t2.BOSSES = 'BRUCE') 

上述查詢的偉大工程,但我想添加一個JOIN來獲得額外的信息添加JOIN這個MySQL查詢

我要添加此連接,但我不能讓它的工作。我必須把它插入錯誤的地方。

JOIN MANAGER_POSTS AS t3 ON (t1.POSTER_ID = t3.POSTER_ID 
    AND t1.SUBMISSION_TYPE = 'post') 

什麼是正確的方式來添加一個連接來獲得這些額外的信息

+0

JOIN通常在WHERE之前。請發佈您正在使用的完整查詢。 – 2012-07-30 10:13:23

+0

謝謝你的工作,張貼,所以我可以接受你的答案! – 2012-07-30 10:16:15

回答

1

這裏試試這個添加您JOIN條款one:

SELECT t1.* , t3.* 
FROM HOSTS AS t1 
      INNER JOIN MANAGER_POSTS AS t3 
       ON (t1.POSTER_ID = t3.POSTER_ID AND 
        t1.SUBMISSION_TYPE = 'post') 
WHERE t1.BOSS = 'BRUCE' 
     OR (t1.BOSS_TYPE = 'manager' AND t1.BOSS_ID = 'BRUCE') 
     OR t1.BOSS IN ( 
          SELECT t2.STORES 
          FROM FOLLOW_STORES AS t2 
          WHERE t2.BOSSES = 'BRUCE' 
         ) 
0

你會需要你的FROM Hosts後和之前您WHERE

SELECT t1.* 
FROM HOSTS AS t1 
INNER JOIN MANAGER_POSTS AS t3 
    ON (t1.POSTER_ID = t3.POSTER_ID 
    AND t1.SUBMISSION_TYPE = 'post') 
WHERE t1.BOSS = 'BRUCE' 
    OR (t1.BOSS_TYPE = 'manager' 
      AND t1.BOSS_ID = 'BRUCE') 
    OR t1.BOSS IN (SELECT t2.STORES 
        FROM FOLLOW_STORES AS t2 
        WHERE t2.BOSSES = 'BRUCE')