簡體   English   中英

更改MYSQL中選定結果表中的列

[英]Alter columns from selected result table in MYSQL

在這里,我想加入表' responsibilities '與字段Name, Direct, Supervise

Name | Direct | Supervise
 ABC    2        4

和positionCode,positionID的表'position':

positionCode | positionID
   HR/HRM         2
   HR/MN          4

選定的結果表將是這樣的事情。

Name | Direct | Supervise
 ABC   HR/HRM    HR/MN

在“ Direct ”和“ Supervise ”欄應該是positionCode從“位置”表。 是否有一體化查詢輸出此結果? 或者我要查詢2次?

試試這個查詢,

SELECT r.Name,
       p1.positionCode AS Direct,
       p2.positionCode AS Supervise
FROM responsibilities r
LEFT JOIN positions p1
    ON r.Direct = p1.positionID
LEFT JOIN positions p2
    ON r.Supervise = p2.positionID

輸出: SEE SQLFiddle DEMO

我想你可以加入responsibilities兩次到positions表:

SELECT r.Name,
       COALESCE(p1.positionCode, 'Direct is N/A') AS Direct,
       COALESCE(p2.positionCode, 'Supervise is N/A') AS Supervise
FROM responsibilities r
LEFT JOIN positions p1
    ON r.Direct = p1.positionID
LEFT JOIN positions p2
    ON r.Supervise = p2.positionID

請點擊以下鏈接查看正在運行的演示:

SQLFiddle

嘗試以下查詢,它應該工作

select R.Name,(select P.positionCode where R.Direct=P.positionID) as 
Direct,(select P.positionCode where R.Supervise=P.positionID) as 
Supervise from Responsibilites R, Positions P;

查看這個SQL Fiddle以證明此查詢有效:

http://sqlfiddle.com/#!9/13845c/4/0

基本上,查詢如下所示:

SELECT r.Name, p1.positionCode As Direct, p2.positionCode as Supervise
FROM responsibilities r 
LEFT JOIN positions p1 ON r.Direct = p1.positionID
LEFT JOIN positions p2 ON r.Supervise = p2.positionID

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM