說我有如下表(ID
& ID2
是PK/FK分別),我將如何爲每個設計這兩次翻出detailTable.name
列的查詢,一旦第一張表中有ID
?SQL選擇 - 返回兩次基於ID的同一列的另一個表
我期望的結果集將是這樣的:
+------+--------+------+---------+
| Name | Name 2 | Code | Created |
+------+--------+------+---------+
| Dave | Steven | AAAA | 1/10/10 |
+------+--------+------+---------+
我已經嘗試了兩個這樣的聯接,但不斷收到此錯誤:
SELECT
DT.name as [Name 1],
DT.name as [Name 2]
--other columns would go here
FROM linkTable LT
LEFT JOIN
detailTable DT
ON LT.id2 = DT.id
LEFT JOIN
linkTable LT2
ON LT2.id = DT.id
where DT.id = '74'
錯誤:錯誤轉換數據類型爲nvarchar to bigint
linkTable
+-----+-------+--------+-------------------------+-----------+
| ID | ID2 | Code | Created | CreatedBy |
+-----+-------+--------+-------------------------+-----------+
| 76 | 15157 | AAAA | 1/1/10 | 844 |
+-----+-------+--------+-------------------------+-----------+
| 77 | 15340 | AAAA | 2015-11-24 15:12:25.057 | 842 |
+-----+-------+--------+-------------------------+-----------+
| 94 | 14644 | GEOFA | 2015-11-13 15:01:19.977 | 842 |
+-----+-------+--------+-------------------------+-----------+
| 94 | 16346 | XX2222 | 2015-11-13 15:01:57.290 | 842 |
+-----+-------+--------+-------------------------+-----------+
| 108 | 15966 | EMPE | 2015-11-25 12:38:37.377 | 842 |
+-----+-------+--------+-------------------------+-----------+
detailTable
+-------+----------+
| ID | Name |
+-------+----------+
| 76 | Dave |
+-------+----------+
| 15157 | Steven |
+-------+----------+
| 94 | Roger |
+-------+----------+
| 108 | Geoff |
+-------+----------+
| 16346 | Penelope |
+-------+----------+
| 15966 | Paul |
+-------+----------+
| 77 | Michael |
+-------+----------+
| 14644 | Colin |
+-------+----------+
| 15340 | Nigel |
+-------+----------+
謝謝:)
所有三個ID列都是bigint –
。 。如果所有的id列都是數字的,我不會看到會發生這樣的錯誤。該查詢顯然不符合你的意圖,但這是一個不同的問題。如果你從「74」中刪除單引號,你還會遇到同樣的問題嗎? –
我認爲引號引起了問題,並且加入了錯誤的表格。謝謝! –