SQL查询中单个代码列的SQL多个查找

时间:2015-06-26 04:22:12

标签: sql

我正在尝试查询企业SQL Server

无论出于何种原因claim_IdStatus_ID都包含在同一个表中,我想在同一个查询中将claim_IDStatus ID翻译为单独的列,我该怎么办?这个?

╔═══════════╦═════════╗
║   claim   ║  code   ║
╠═══════════╬═════════╣
║ claim_ID  ║ code_ID ║
║ status_ID ║ name    ║
╚═══════════╩═════════╝

Claim表:

╔═══════════╦═════════╗═════════╗
║  Claim_ID ║status_ID║Item_ID  ║
╠═══════════╬═════════╣═════════║
║ 1         ║ 12      ║  1      ║
║ 2         ║ 14      ║  2      ║
╚═══════════╩═════════╝═════════

Code表:

╔═══════════╦═════════╗
║   CODE ID ║  name   ║
╠═══════════╬═════════╣
║ 1         ║ complete║
║ 2         ║ cancel  ║
║ 12        ║  Open   ║
║ 14        ║Shipping ║
╚═══════════╩═════════╝

理想输出:

╔═══════════╦════════════ ╗════════════════
║   ITEM_ID ║Claim_ID_name║status_ID_name ║
╠═══════════╬═════════════╬═══════════════╣
║ 1         ║  complete   ║    open       ║      
║ 2         ║  cancel     ║    shipping   ║
║           ║             ║               ║
║           ║             ║               ║
╚═══════════╩═════════════════════════════╝

2 个答案:

答案 0 :(得分:0)

使用子查询:

SELECT 
    ITEM_ID, 
    (SELECT name FROM Code WHERE CODE_ID = Claim_ID) AS Claim_ID_NAME, 
    (SELECT name FROM Code WHERE CODE_ID = status_ID) AS status_ID_name
FROM Claim

答案 1 :(得分:0)

试试这个。

select item_id, code_table.name, sub_table.name
from claim_table, code_table, 
(select code_id, name
 from code_table
 ) sub_table                               
where claim_id = code_table.code_id
and status_id = sub_table.code_id;

您还可以尝试探索子查询:

http://www.tutorialspoint.com/sql/sql-sub-queries.htm

http://beginner-sql-tutorial.com/sql-subquery.htm

希望它有所帮助。