試圖尋找從具有相同結構的多個SQL表的數字,這裏就是我試圖做select a, b, c from table_a, table_b, table_c where a = '12344'
試圖尋找從多個SQL表多個具有相同結構
的結果可能是要麼一表。
它給我們這個錯誤
不明確的列名
試圖尋找從具有相同結構的多個SQL表的數字,這裏就是我試圖做select a, b, c from table_a, table_b, table_c where a = '12344'
試圖尋找從多個SQL表多個具有相同結構
的結果可能是要麼一表。
它給我們這個錯誤
不明確的列名
問題是你有在select
三個表,你沒有資格用你的專欄。我猜你正在尋找這個
使用UNION ALL
select a from table_a where a = '12344'
UNION ALL
select b from table_b where a = '12344'
UNION ALL
select c from table_c where a = '12344'
或另一種方式使用join
SELECT *
FROM table_a ta
CROSS JOIN table_b tb
CROSS JOIN table_c tc
WHERE '12344' IN (ta.a, tb.a, tc.a)
注:這兩個查詢將導致不同的格式設置。另外請記住,你正在做三張表的笛卡爾積。
在您的查詢中: 對於具有相同列名的多個表,您需要指定表名和列名。而不是僅僅一個,你需要像table_a.a = '12344'
您的需要指定它: 你應該在同一時間內搜索1個表並使用UNION ALL
SELECT a, b, c, from table_a where a = '12344'
union all
SELECT a, b, c, from table_b where a = '12344'
union all
SELECT a, b, c, from table_c where a = '12344'
謝謝... !!!有沒有什麼辦法可以在第一個表中搜索一個值,如果沒有找到第二個,然後第三個?表名是不同的,但結構和列名相同.. :( –
然後你將拆分成單個查詢。使用@@ rowcount檢查第一個查詢的任何結果。如果@@ rowcount = 0然後執行第二個查詢等等,您可能還需要使用臨時表來存儲每個查詢的結果,然後在末尾返回一個結果 – Squirrel
謝謝你..這裏是我的查詢現在但是我想知道如何搜索多個值,像我們在('123','321','432')聲明@@ cp varchar(20)set @cp ='123'從table_a中選擇a,b,c,其中a = @@ cp union all 從table_b中選擇a,b,c,其中a = @@ cp union all SELECT a,b,c ,從table_c where a = @@ cp –
謝謝...!如果第二張和第三張沒有找到,我們是否可以通過某種方式搜索第一張表中的值?表名是不同的,但結構和列的名稱是相同的。:( –
謝謝你們..這是我的查詢現在但是,我想知道如何搜索多個值,就像我們在哪裏('123' ,'321','432')declare @@ cp varchar(20)set @cp ='123'從table_a中選擇a,b,c,其中a = @@ cp union從table_b中選擇a,b,c其中a = @@ cp union所有SELECT a,b,c,來自table_c,其中a = @@ cp –