我已經閱讀了幾篇關於這個問題的SO帖子,但我仍然不理解該解決方案。我認爲我只是缺少一些小事,就使這項工作正常:另一個MySQL 1066.不是唯一的表/別名:從多個表中選擇'events'
#1066 - Not unique table/alias:
#1066 - error not unique table alias
#1066 - Not unique table/alias: 'tb_X'
這裏是在查詢一個變種我試過,如果我運行這個,MySQL Workbench 6.1剛剛進入la-la-land,我必須取消查詢。
SELECT `events`.`DateTime`, `events`.`User`, `eventdetails`.`ItemName`, `eventdetails`.`ItemValue`
FROM `events`, `eventdetails`
INNER JOIN `events` events1 ON `events1`.`Event_ID` = `eventDetails`.`Event_ID`
WHERE `events`.`PCBID` = 12946
ORDER BY `events`.`DateTime` DESC;
這種變異給我的稱號1066錯誤:
SELECT `events`.`DateTime`, `events`.`User`, `eventdetails`.`ItemName`, `eventdetails`.`ItemValue`
FROM`events`, `eventdetails`
INNER JOIN `events` ON `events`.`Event_ID` = `eventDetails`.`Event_ID`
WHERE `events`.`PCBID` = 12946
ORDER BY `events`.`DateTime` DESC;
我明白,我使用的是events
表兩次,但似乎並沒有能夠得到一個可行的版本那不超時。
我的數據:
的 '事件' 的結果應該來自於這些行:
Event_ID | PCBID | EventType_ID | DateTime | User
73819 | 12946 | 1 | 03-Sep-09 07:10:07 | USERNAME
73992 | 12946 | 1 | 11-Sep-09 06:51:09 | USERNAME
74159 | 12946 | 1 | 16-Sep-09 07:22:49 | USERNAME
74445 | 12946 | 1 | 08-Jan-10 13:41:16 | USERNAME
和 'eventdetails' 結果應該來自於這些行:
EventDetails_ID | Event_ID | ItemName | ItemValue
37595 | 73819 | SBESerialNumber | 70000862
37948 | 73992 | Notes | Passed IMM Cold Test B
38115 | 74159 | Notes | passed UCSD specific timing test
38423 | 74445 | SBESerialNumber | 00000000
預期結果:
我要找應該是這個樣子的結果:
DateTime | User | ItemName | ItemValue
03-Sep-09 07:10:07 | USERNAME | SBESerialNumber | 70000862
11-Sep-09 06:51:09 | USERNAME | Notes | Passed IMM Cold Test B
16-Sep-09 07:22:49 | USERNAME | Notes | passed UCSD specific timing test
08-Jan-10 13:41:16 | USERNAME | SBESerialNumber | 00000000
第一個查詢工作對我來說:http://www.sqlfiddle.com/#!2/6bdd6/1 – Barmar 2014-08-27 17:28:43
你爲什麼與'events'兩次加入?你從不使用'events1'中的任何東西。 – Barmar 2014-08-27 17:31:58
@Barmar我相信OP正試圖通過該連接刪除Cartesian Product ...而不是僅僅以正確的方式去做 – 2014-08-27 17:32:31