2011-07-15 136 views
0

我希望有人可以幫我一個MySQL查詢。幫助SQL多表查詢

我想在MySQL數據庫中創建一個查詢,查找與Table_A的column_1中的字符串'foo'匹配的所有行,然後使用'foo'搜索這些行以及column_2中的'bar'的所有值Table_A返回Table_8中包含'bar'的Table_b中的所有行。

我的出發查詢:

SELECT * FROM TABLE_A WHERE column_1 LIKE 'foo'; 

上面的查詢只查找匹配的表-A的COLUMN_1字符串「富」的所有數據。我需要添加哪些代碼才能獲得上述結果並使用Table_A column_2搜索Table_B的column_8中的匹配項?我似乎無法弄清楚如何執行此查詢。

在此先感謝您提供的任何幫助。

+0

您的請求沒有任何意義。 「Table_A」和「Table_B」之間是否存在關係?正如你所解釋的,你甚至不需要'Table_A' – JNK

回答

3

它不是從你的描述清楚,如果這是正確的,但它聽起來像你尋找一個JOIN

SELECT * 
FROM 
    TABLE_A a 
    INNER JOIN TABLE_B b 
    ON a.column_2 = b.column_8 
WHERE 
    a.column_1 LIKE 'foo' 
    and a.column_2 = 'bar' 
+0

謝謝!真的,感謝您花時間閱讀我的複雜描述。你的代碼工作完美! – drbunsen

1

,你可以使用子查詢來選擇表B的值來比較列在表A:

select * from tableA 
Where column1 = 'foo' 
and column2 in (select disitnct column8 from tableB where xxxxxxxxx) 
+1

你可以通過選擇並按下'{}'按鈕來格式化你的代碼。 –

0

http://dev.mysql.com/doc/refman/5.0/en/join.html

例如:

SELECT * FROM TABLE_A 
LEFT JOIN TABLE_B 
USING(COLUMN TO MATCH ON) 
WHERE TABLE_A.column_1 LIKE 'foo' 
AND TABLE_B.column_8 LIKE 'bar'; 

我不完全清楚你實際上正在做什麼,因此可能不是你需要的確切代碼。

+1

'JOIN'通常有某種標準... – JNK

+0

謝謝!我完全忘了那:) –

0

SELECT * FROM TABLE_A INNER JOIN表-B ON TABLE_A.COLUMN_1 = '富' 和TABLE_A.COLUMN_2 = '酒吧' AND TABLE_B.COLUMN_8 = '酒吧'

這將SQL服務器上運行,可能是同樣在MySQL上。嘗試一下! 您可以在連接上使用多個條件。