想象一下:SQL - 從多個表中選擇多個字段
table1的
ID Type Priority
1212 A CRITICAL
1213 B MAJOR
1214 B MINOR
1215 A MAJOR
1216 A CRITICAL
1217 A CRITICAL
表2
ID STATE CHANGEDATE
1212 Pending 03-06-2015 17:47
1212 Closed 04-06-2015 05:47
1212 InProgress 03-06-2015 15:32
1212 Start 03-06-2015 15:07
1212 Opened 03-06-2015 13:47
- table1中包含了所有的ID信息
- 表2包含了所有不同的ID號信息
我需要什麼:我需要從兩個表中獲取所有ID的信息。
我爲什麼掙扎:除了我的n00b水平(讓我只說我不是Valhalla材料),我無法將第一張表和第二張表中的信息關聯起來。
我想象什麼:
ID Type Priority Opened Closed
1212 A CRITICAL 03-06-2015 13:47 -
1215 A MAJOR 06-06-2015 18:00 07-06-2015 18:00
1216 A CRITICAL 03-05-2015 13:10 04-06-2015 18:00
1217 A CRITICAL 01-06-2015 11:03 05-06-2015 18:00
UPDATE:
這是我嘗試過,但是專注於一個特定的ID(1212):
SELECT
MAX (ID_A) AS "ID",
MAX (STATE_A) AS "ACTION NAME",
MAX (CHANGEDATE_A) AS "START",
MAX (STATE_B) AS "ACTION NAME",
MAX (CHANGEDATE_B) AS "END"
FROM (
SELECT
ID AS ID_A,
STATE AS STATE_A,
CHANGEDATE AS CHANGEDATE_A,
NULL AS ID_B,
NULL AS STATE_B,
NULL AS CHANGEDATE_B
FROM table2
WHERE table2.ID = '1212' AND table2.STATE = 'Start'
UNION ALL
SELECT
NULL AS ID_A,
NULL AS STATE_A,
NULL AS CHANGEDATE_A,
ID AS ID_B,
STATE AS STATE_B,
CHANGEDATE AS CHANGEDATE_B
FROM table2
WHERE table2.ID = '1212' AND table2.STATE = 'Close');
運行此我」會得到如下結果:
ID ACTION NAME START ACTION NAME END
1212 Start 03-06-2015 13:47 Close -
我需要的是同樣的,但是這次對於所有的ID,生成一個列表(沒有指定ID)。
歡迎使用計算器。請閱讀[問]。提示#1:告訴我們你已經嘗試了什麼。提示#2:您需要將表2連接兩次到表1. –
日期和時間遵循SQL中的特定格式/數據類型。這不是。修復,然後回到我們身邊。 – Strawberry
我提出的日期格式僅僅是一個例子(這是我在SQL Developer中爲了更好的閱讀而配置它的方式)。 –