我已經匹配當前工作的PIONT如何在兩個表的SQL查詢,如何分配表別名
SELECT *
FROM tracklisting
INNER JOIN catelogue ON catelogue.`CAT NO.` = tracklisting.`TRACKLISTING CAT NO.`
WHERE tracklisting.`ARTIST` LIKE 'placebo'
這是ovblisy在我的曲目錶帶回記錄的搜索是「安慰劑'
現在我想要它在我的Db中搜索我的另一張桌子,catelogue。
我試圖做的代碼,但不斷收到此錯誤返回
1066 - 不是唯一的表/別名: 'catelogue'
這是我使用的代碼:
SELECT *
FROM tracklisting, catelogue
INNER JOIN catelogue ON catelogue.`CAT NO.` = tracklisting.`TRACKLISTING CAT NO.`
WHERE tracklisting.`ARTIST` LIKE 'placebo' OR catelogue.`ARTIST` LIKE 'placebo'
不幸的是,這些表格無法合併爲一個,因爲軌道列表涉及到catelogue表中的專輯。
我相信應該給catelogue表分配一個別名,但我試過並得到了相同的消息。我可能在做一些愚蠢的事情。
也應該因爲有沒有軌道列表的專輯迄今爲止的聯合更改?
非常感謝
編輯:
我已經試過這個代碼藏漢但無濟於事。它可以工作,但似乎沒有從catelogue表中返回任何記錄,只有tracklisting表。
SELECT *
FROM tracklisting t
INNER JOIN catelogue c ON c.`CAT NO.` = t.`TRACKLISTING CAT NO.`
WHERE t.`ARTIST` LIKE 'placebo'
OR c.`ARTIST` LIKE 'placebo'
我似乎已經拿起了別名是如何工作的,謝謝你們。
我想要的基礎知識。它必須搜索兩個表,並且如果在catelogue表中找到記錄,它將按原樣顯示,但是如果在軌道列表中找到記錄,它必須顯示它與catelogue表中匹配的記錄。
軌道表列表中包含藝術家列的原因適用於各種藝術家專輯。
希望能幫助我想要達到的目標。
感謝
OK
後決定,一個JOIN可能會在此處是問題有人
INNER JOIN必須是正確的加入讓大家的代碼在這裏是正確的除了JOIN
SELECT *
FROM tracklisting t
RIGHT JOIN catelogue c ON c.`CAT NO.` = t.`TRACKLISTING CAT NO.`
WHERE t.`ARTIST` LIKE 'placebo'
OR c.`ARTIST` LIKE 'placebo'
感謝幫助
我將類列表從FROM子句中刪除,但它仍然只返回tracklisting表的結果。我希望它能返回 – Mark 2012-01-03 08:47:05
的結果請查看@ Michiel的回答。 – 2012-01-03 08:47:57