2012-07-27 52 views
0

這裏有一些幫助請用(高級)mysql。例子說明了這個問題好得多。所以..mysql通過參數的關係選擇數據

我有一個預定義值對錶PARTNERS與partner1和partner2列。然後還有另一個表項目有partner1和partner2列。

所以,我想選擇列partner1和partner2在上述實際夥伴表內的所有項目。

顯然,我不能簡單地指出「where partner1 = ... and/or partner2 = ...」,因爲不會檢查這兩個人是否是夥伴(如PARTNERS表中定義的)。 (以防萬一:有夥伴1和夥伴2的項目不在夥伴關係中。)

我不認爲這種查詢是可能的,因爲它具有存儲在結果中的條件。但如果有其他證據可以證明會很開心。 謝謝

+0

我不明白爲什麼你不能只加入Partner1 = partner1和partner2 = partner2上的2個表格嗎?可以用表格值和預期結果顯示一個真實的例子 – 2012-07-27 17:39:53

+0

我以爲你會明白這一點問題的類型是不相關的,因爲這個例子比系統中的實際簡單。注意上面「以防萬一:有夥伴1和夥伴2的項目不在夥伴關係中。」 – 2012-07-27 17:47:50

+0

什麼?所有你需要的是加入這兩個表格(非常類似於下面的octern),除非你解釋你的需求做得不好,並且我們誤解了你的問題。 – 2012-07-27 17:50:03

回答

2

聽起來好像你需要一個查詢,它會給你PROJECTS的行,其中合夥人1和合夥人2與合夥人中的任何行都相同。所以做一個內部聯接:

SELECT * FROM projects 
INNER JOIN partners 
    ON projects.partner1 = partners.partner1 
    AND projects.partner2 = partners.partner2 

如果你彌補你的改制表,它可能會更有意義,一個唯一的ID在合作伙伴分配到每一行,並使用該ID在項目表中。通過這種方式,您不需要存儲兩列冗餘數據,只需要一列指示哪一對學生在項目中。

+0

@StefanH感謝您解決我的錯別字(: – octern 2012-07-27 17:53:01

+0

沒問題,你改回來了,並把相當的鬥爭雖然:P – 2012-07-27 17:53:40

+0

OMG !!!我不知道加入是能夠選擇上下文 謝謝 – 2012-07-27 17:54:17