帮助SQL多表查询

时间:2011-07-15 18:28:49

标签: mysql sql database

我希望有人可以帮我查询MySQL查询。

我正在尝试在MySQL数据库中创建一个查询,该查询找到与Table_A的column_1中的字符串'foo'匹配的所有行,然后使用'foo'搜索这些行,并在Table_A的column_2中搜索所有值'bar'返回Table_b中包含column_8中“bar”的所有行。

我的初始查询是:

SELECT * FROM TABLE_A WHERE column_1 LIKE 'foo';

上述查询仅查找与Table_A的column_1中的字符串'foo'匹配的所有数据。我需要添加哪些代码才能获得上述结果并使用Table_A column_2来搜索Table_B的column_8中的匹配项?我似乎无法弄清楚如何执行此查询。

提前感谢您提供的任何帮助。

4 个答案:

答案 0 :(得分: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'

答案 1 :(得分:1)

您可以使用子查询选择表b中的值,以与表A中的列进行比较:

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

答案 2 :(得分: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';

我并不完全清楚你实际上在做什么,这可能不是你需要的确切代码。

答案 3 :(得分:0)

SELECT * FROM TABLE_A     INNER JOIN TABLE_B ON TABLE_A.COLUMN_1 ='foo'AND TABLE_A.COLUMN_2 ='bar'AND TABLE_B.COLUMN_8 ='bar'

这可以在SQL服务器上运行,在MySQL上可能是相同的。试试吧! 您可以在联接中使用多个条件。