none
兩個Table 關聯 RRS feed

  • 問題

  • 我有table1{key,name},table2{name2}

    key | name                    name2

     1      a                              d

     2      b                              a

     3      c                              a  

     4      d                             a

                                            b 

                                            c

    請問該怎麼下語法,才能把table2的name2欄位的值,變成4 1 1 1 2 3


    2014年11月14日 上午 09:00

解答

  • HI KikrW
    請問一下您是想要把table2的name2欄位的值
    直接換成與table1相對應的key值嗎
    如果是的話那就需要用UPDATE指令,指令如下

    UPDATE table2
    SET 
    table2.name=table1.key
    FROM
    table2
    INNER JOIN
    table1
    ON
    table1.name=table2.name

    如果只是要查詢時參照對應出來
    那就如上面兩位大大的select語法就可以完成囉


    歡迎開發者或IT技術工作者同好在開發過程中遇到的問題或相關經驗分享在MSDN論壇上,供大家經驗交流學習
    並請記得將對您有幫助的回覆"標示為解答"以幫助其他尋找解答及參與社群討論的朋友們。

    Please remember to click Mark as Answer on the post that helps you. This can be beneficial to other community members reading the thread.

    • 已標示為解答 KikrW 2014年11月20日 上午 06:08
    2014年11月17日 上午 02:21

所有回覆

  • select table1.key from table2 left join table1 on table2.name2 = table1.name


    大家一齊探討、學習和研究,謝謝!
    MCSD, MCAD, MCSE+I, MCDBA, MCDST, MCSA, MCTS, MCITP, MCPD,
    MCT, Microsoft Community Star(TW & HK),
    Microsoft MVP for VB.NET since 2003
    My MSMVP Blog

    請記得將對您有幫助的回覆標示為解答以幫助其他尋找解答及參與社群討論的朋友們。
    Please remember to clickMark as Answer on the post that helps you. This can be beneficial to other community members reading the thread.

    2014年11月14日 上午 09:44
  • 這語法出來會與你上面列出的格式相同...

    SELECT * FROM Table1 AS T1 INNER JOIN Table2 AS T2

    ON T1.name = T2.name2

    這個語法, 列出來 Table2 的 name2 欄位值 會是 411123

    SELECT 

    T1.Key,

    T1.name,

    CASE WHEN T1.name = T2.name2 THEN T1.Key

    ELSE T1.Key END AS name2

    FROM Table1 AS T1 INNER JOIN Table2 AS T2

    ON T1.name = T2.name2

    2014年11月14日 下午 12:51
  • HI KikrW
    請問一下您是想要把table2的name2欄位的值
    直接換成與table1相對應的key值嗎
    如果是的話那就需要用UPDATE指令,指令如下

    UPDATE table2
    SET 
    table2.name=table1.key
    FROM
    table2
    INNER JOIN
    table1
    ON
    table1.name=table2.name

    如果只是要查詢時參照對應出來
    那就如上面兩位大大的select語法就可以完成囉


    歡迎開發者或IT技術工作者同好在開發過程中遇到的問題或相關經驗分享在MSDN論壇上,供大家經驗交流學習
    並請記得將對您有幫助的回覆"標示為解答"以幫助其他尋找解答及參與社群討論的朋友們。

    Please remember to click Mark as Answer on the post that helps you. This can be beneficial to other community members reading the thread.

    • 已標示為解答 KikrW 2014年11月20日 上午 06:08
    2014年11月17日 上午 02:21
  • 如果你是要透過name資料行來查詢key,可以參考下列的T-SQL指令碼,看看能否符合你的需求,謝謝。

    declare @t1 table
    ([key] int, name varchar(10))
    
    declare @t2 table
    (name varchar(10))
    
    insert into @t1 values (1,'a'),(2,'b'),(3,'c'),(4,'d')
    insert into @t2 values ('d'),('a'),('a'),('a'),('b'),('c')
    
    select a.name,b.[key]
    from @t2 a
    join @t1 b
    on a.name = b.name


    | SQL PASS Taiwan Page | SQL PASS Taiwan Group

    | My Blog

    2014年11月17日 上午 04:08
    版主