2012-07-15 63 views
1

有在兩個不同的數據庫中兩個表:如何做一個選擇加入如果兩個表中有一個specfic等於

可以說我有數據庫users和數據庫questions。如果users有一個名爲USER_STATS表具有

USER_ID, 
EDU_INT1, 
EDU_INT2, 
EDU_INT3 

,並questions有一個名爲questions有一個名爲CLASS_SUBJECTS列的表。

我想從QUESTIONS運行一個查詢,將顯示*,其中CLASS_SUBJECTS等於或者EDU_INT1,EDU_INT2,EDU_INT3其中EDU_INT的是從特定USER_ID

任何想法確定的?這是半硬,因爲兩個不同的數據庫

回答

2

跨越兩個數據庫查詢的時候,你只需要在表名前用.預先設置的數據庫名稱爲database.table.column,和數據庫連接的用戶必須訪問這兩個數據庫。

除此之外,這是一個普通JOIN,但使用3個條件OR「的更多複雜ON條款D一起:

SELECT 
    q.* 
FROM 
    questions.questions q 
    JOIN users.USER_STATS u ON (
    q.CLASS_SUBJECTS = u.EDU_INT1 
    OR q.CLASS_SUBJECTS = u.EDU_INT2 
    OR q.CLASS_SUBJECTS = u.EDU_INT3 
) 
WHERE u.USER_ID = <some user id> 
+0

我認爲這可能會工作,是 「Q」 和 「u」 只是作爲一個參考? – Linux4Hope 2012-07-15 19:33:15

+0

@ Linux4Hope它們是表別名,在'FROM'子句中的表之後定義。有時用可選的'AS'關鍵字完成:'FROM users.USER_STATS AS u',但我傾向於不使用'AS' – 2012-07-15 19:35:29

+0

工作!謝謝! – Linux4Hope 2012-07-15 20:01:45

相關問題