2011-07-15 105 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上。尝试一下! 您可以在连接上使用多个条件。