2013-10-28 32 views
1

我一直在做一些交叉關係SQL查詢的試驗,至今沒有成功。想知道是否有人可以幫忙?SQL:如何從兩個表中獲取關係數據? (使用JOIN?)

我有兩張感興趣的表格,正試圖找出我的哪些客戶(=公司聯繫人1)必須完成未完成的項目。這裏是表格結構:

TABLE: CUSTOMERS 

ID | CUSTOMER_NAME | COMPANY_CONTACT 
================================================= 
1   Bob      1 
2   Billy     2 
3   Susan     2 
4   Ryan     3 
5   Sally     1 

TABLE: TO_DOS 
ID | TASK   | CUSTOMER_ID 
============================================ 
1   Make Tea     5 
2   Pick flowers    1 
3   Do invoices    3 
4   Tidy up     4 
5   Drive van    2 

理想的產出將是

CUSTOMER_ID  | CUSTOMER_NAME | TASK 
================================================================= 
5   Sally   Make Tea 
1   Bob   Pick flowers 

到目前爲止,我已經試過,但它不會讓我在任何地方:

SELECT * FROM TO_DOS 
INNER JOIN CUSTOMERS 
WHERE CUSTOMERS.COMPANY_CONTACT=1 

任何想法不勝感激!

+1

如果你把在加入然後用內心的這種關係加入客戶,否則您正在完全加入並將結果限制爲公司聯繫人1. –

+0

感謝@lrb,您有什麼好的鏈接來了解我的內部聯接和工作方式。我認爲我是在正確的路線上,但不是那裏!再次感謝:-) – user2761030

回答

4
SELECT CUSTOMERS.ID, CUSTOMERS.CUSTOMER_NAME, TO-DOS.TASK 
FROM TO_DOS 
INNER JOIN CUSTOMERS 
ON TO_DOS.CUSTOMER_ID = CUSTOMERS.ID 
WHERE CUSTOMERS.COMPANY_CONTACT = 1 
+0

這很好,謝謝!你有什麼好的鏈接,我在哪裏閱讀關於「內部連接」和「開啓」的工作方式。我認爲我是在正確的路線上,但不是那裏!再次感謝:-) – user2761030

+0

其實如果你使用Google *** SQL JOIN Tutorial ***,你會發現大量的信息解釋它是如何使用的。 – Linger

2
SELECT * FROM TO_DOS AS A 
INNER JOIN CUSTOMERS AS B ON A.CUSTOMER_ID=B.ID 
WHERE CUSTOMERS.COMPANY_CONTACT=1 

公司接觸數量將決定選擇哪個客戶,所以如果你想選擇薩利和鮑勃,你會選擇1

+0

'CUSTOMERS.COMPANY_CONTACT = 1'會起作用嗎?您可能需要'B.COMPANY_CONTACT = 1' –