2014-01-15 58 views
1

我有興趣解決一個SQL查詢謎題,這個謎題讓我感到非常緊張。我必須構建一個影響三個表的查詢。我試圖通過一個過程來解決這個問題,但我想HPQC報告查詢生成器無法處理過程。所以我必須使用另一種解決方案。HPQC報告查詢生成器

以下是三個步驟的問題:我從第一個表中確定了一個bug_id。有了這個ID,我喂另一個表,從第二個表中獲取相應的user_id。作爲最後一步,我使用第二個表中的user_id查找相應的用戶名

SELECT bug_id FROM Bugs WHERE (Color='green') --> RESULT_A 
SELECT link_id FROM Link WHERE (the_user = RESULT_A) --> RESULT_B 
SELECT username FROM Users WHERE (user_id = RESULT_B) 

我試圖通過JOINS撥弄我的方式,但它似乎不工作。因此,我試圖通過僅使用一個簡單的2步(查找)示例簡化問題:

SELECT LINKTABLE.USERID, USERTABLE.USERNAME 
FROM LINKTABLE 
INNER JOIN USERTABLE 
ON LINKTABLE.USERID = USERTABLE.USERID; 

HPQC報告:無效語句。

有沒有人可以幫助我建立一個簡單的查詢查詢?

UPDATE:

這是我的一個連接超過2臺的解決方案:

SELECT 
b.BG_BUG_ID as Defect, 
b.BG_USER_09 as PTR, 
b.BG_STATUS as Status, 
b.BG_SEVERITY as Severity, 
b.BG_USER_01 as Category, 
b.BG_USER_66 as Theme, 
b.BG_USER_64 as Page_Impacted, 
b.BG_DETECTION_DATE as Detected_on_Date, 
b.BG_DETECTION_VERSION as Detected_in_Version, 
l.LN_ENTITY_ID, 
l.LN_ENTITY_TYPE 
FROM 
BUG b 
JOIN 
LINK l 
ON 
b.BG_BUG_ID = l.LN_BUG_ID 
WHERE 
(b.BG_BUG_ID = 5555) 
AND 
(l.LN_ENTITY_TYPE = 'TEST') 
ORDER BY b.BG_BUG_ID ASC 

現在我需要添加第三個信息,從另一個表來。所以必須要2 JOINS ..

回答

-2
select b.bug_id, u.username as Name 
from Bugs b 
join Link l on b.id = l.the_user 
join Users u on l.the_user = u.username 
where Color = 'green' 
+0

我和您的查詢麻煩,我花了1H至弄清楚,即WHERE子句必須在該聲明結束。 – Ajin

+0

-1'd。 where子句應該在連接之後進行。這總是會在SQL –

+0

@StuartBlackler中拋出一個錯誤,這很公平,我想我在連接之前編寫了查詢,然後忘記移動where子句! – JsonStatham

1

我想通了:

SELECT 
b.BG_BUG_ID as Defect, 
b.BG_USER_09 as PTR, 
b.BG_STATUS as Status, 
b.BG_SEVERITY as Severity, 
b.BG_USER_01 as Category, 
b.BG_USER_66 as Theme, 
b.BG_USER_64 as Page_Impacted, 
b.BG_DETECTION_DATE as Detected_on_Date, 
b.BG_DETECTION_VERSION as Detected_in_Version, 
t.TS_NAME as Testcase 
FROM 
BUG b 
JOIN LINK l ON b.BG_BUG_ID = l.LN_BUG_ID 
JOIN TEST t ON l.LN_ENTITY_ID = t.TS_TEST_ID 
WHERE 
(b.BG_BUG_ID = 5555) 
AND 
(l.LN_ENTITY_TYPE = 'TEST') 
ORDER BY b.BG_BUG_ID ASC