2012-05-24 40 views
2

我想從兩個數據庫的表中加入數據。一個用預定義的值(itemId,itemName)提交,另一個用戶填充(itemId,itemName,userId)。屬性itemId和itemName是相同的,從第一個表中我們選擇所有數據,從第二個我們通過userId選擇數據併合並這兩個結果。從兩個數據庫中使用autoincrement id加入數據

加入的數據應該加以區分,因爲ID是自動增量,可以相同(加倍)。我們想用這個數據填充下拉列表,例如數據源和字典(int是itemId,字符串是itemName),我們只能在dropDownList中使用valueFiled和valueText,但這兩個表的ID可能是相同的,不知道從哪張表中選擇的項目是由id。

是否有任何優雅的方式來聯合這個,也許與我們始終在用戶登錄時加入臨時表等這兩個表臨時表...

謝謝你的答案

+1

您可以給出一組簡單的示例數據,比如說每個表中有4行,然後是您查詢的結果。它最初聽起來像你想要一個非常簡單的加入 - 但清晰度會有所幫助。 –

+0

除了Nt的問題之外,你問的是關於MySQL還是SQL Server(或兩者)?哪個版本?這可能會影響答案。 – Pondlife

+0

每個單獨的表格或兩個表格中是否有重複的內容? –

回答

1

我認爲你正在尋找一個工會。使用文字值來標識來源。

select 'predefined' as source, itemid, itemname 
    from predefined_values_table 
union all 
select 'user', itemid, itemname 
    from user_supplied_values_table 
    where userid = ?; 

如果你只能容納兩列,你可能會使用類似這樣的東西。但是你必須撤銷字符串連接才能得到id號。

select 'p:' || itemid, itemname 
    from predefined_values_table 
union all 
select 'u:' || itemid, itemname 
    from user_supplied_values_table 
    where userid = ?; 
+0

這對我來說不是最好的解決方案,因爲工會全部加入兩張表並且重複ID,如果我通過ID選擇某件事物並且有兩個ID1,我怎麼能知道至少來自table1並且來自table2 ...我可以' t在ddl中設置標誌,因爲它只能有文本/值字段,所以如果我設置字典像數據源這個設置ID和名稱 – janilemy

+0

你知道哪個表來源於檢查「源」列。 –

相關問題