2009-12-08 162 views
1

我有3個不同的表格結構,我會稱它們爲A,B,C。Mysql從3個表格中選擇

我需要做在同一時間所有的3個表進行搜索,讓我需要對:

A.name LIKE%谷歌%B.company LIKE%谷歌%和C.company LIKE% Google%

對於提到的「查詢類型」有一個查詢可能嗎?

最好的問候!

這裏是我要找的

Select from table A where A.name LIKE %something% inner join B on b.company LIKE %something% and after that I need to do the samething for table C..but I don't know how... 

查詢:

SELECT name FROM firmen WHERE name LIKE '%Felsengartenkellerei Besigheim eG%' 
    UNION 
    SELECT firma FROM daten WHERE firma LIKE '%Felsengartenkellerei Besigheim eG%' 
UNION 
    SELECT firma FROM ver WHERE firma LIKE '%Felsengartenkellerei Besigheim eG%' 
+1

你可以詳細介紹一下你想做什麼嗎?這三張表是以某種方式相關的?模式結構將會非常有用。 – 2009-12-08 02:18:41

+0

這3個表是否相互獨立?只是爲了詳細說明dlo的提示......在這兩個表中是否有任何外鍵關係? – 2009-12-08 02:21:08

+0

不,完全不同的表格結構...我需要對它們進行搜索...並且如果我找到了它正在尋找的用戶,我需要顯示它!以下是需要搜索的字段名稱: 對於表A - >名稱對於表B - >公司對於表C - >公司 – Uffo 2009-12-08 02:24:40

回答

2

不知道你正在試圖做的,因爲我們沒有模式到底是什麼,但大概A是公司的表格,其中'名稱'字段對應於B和C中的外鍵「公司」字段,如果那樣的話那麼你有些事情是這樣的:

SELECT * FROM A, B, C 
    WHERE A.name LIKE '%Google%' 
    AND B.company = A.name 
    AND C.company = A.name 

編輯,所以從你的評論中你說他們是而不是外鍵,你想選擇所有具有特定字段'LIKE'Google的行,你只需要一次做一個:

SELECT * FROM A WHERE name LIKE '%Google%' 
SELECT * FROM B WHERE company LIKE '%Google%' 
SELECT * FROM B WHERE company LIKE '%Google%' 

如果所有這三個表都具有相同的模式(或者它們有幾個共同的字段,並且只是按照相應的順序選擇這些字段),如果您想加入這些3個查詢的聯合結果在一起。

假設他們的所有3個有「URL」或「webaddr」領域,它們分別具有「遞減」,「說明」和「信息」字段:

SELECT url, desc   FROM A WHERE name LIKE '%Google%' 
UNION 
SELECT webaddr, description FROM B WHERE company LIKE '%Google%' 
UNION 
SELECT url, info   FROM B WHERE company LIKE '%Google%' 

有一個很好的解釋MySQL中的UNION和UNION ALL的語義tutorialspoint

+0

可以請給我一個例子與聯盟如何加入結果請一起,我避風港睡了50個小時,所以現在我想不起來了。謝謝 – Uffo 2009-12-08 02:32:43

+0

更新給UNION – 2009-12-08 02:35:27

+0

的例子我的查詢看起來是這樣的: SELECT名字從firmen WHERE名稱LIKE%Felsengartenkellerei貝西格海姆比如% UNION SELECT公司從回到名單Daten WHERE公司LIKE%Felsengartenkellerei貝西格海姆比如% UNION SELECT公司從任何公司像%Felsengartenkellerei Besigheim eG% 錯誤: -------------------------- #1064 - 你有你的SQL語法錯誤;檢查與您的MySQL服務器版本相對應的手冊,在'%Felsengartenkellerei Besigheim eG% UNION '附近使用正確的語法。SELECT company FROM daten WHERE compan'at line 1 ------------- ---------- – Uffo 2009-12-08 02:38:39