2011-11-04 117 views
0

我有3个表格,其中包含彼此相关的不同类型的数据。这些表格通过Excel电子表格填充。我有:如何在MYSQL中使用INNER/OUTER JOIN

table1   table2   table3 
item_number  item_number  item_number 
desc    desc   qty_sold 
qty_instock  vdf_cost  upc 
cost    status 

我试图做的是使用连接函数来显示所有的数据,因为它们之间的相互关系,但问题是,当我运行

SELECT * 
FROM table1 a 
INNER JOIN table2 b 
ON a.someColumn = b.otherColumn 
INNER JOIN table3 c 
ON b.anotherColumn = c.nextColumn 

它只是侧放桌侧,如果我跑

SELECT * 
FROM table1 a 
INNER JOIN table2 b 
USING(item_number) 

它的工作原理,但只有加入项目数(我不知道如何使用多个领域,如描述,重复),以及由于某种原因,我只能使用这两个表■当我尝试添加第三个表(最有可能被完全错误的完成)

SELECT * 
FROM table1 a 
INNER JOIN table2 b 
INNER JOIN table3 c 
USING(item_number) 

我只是得到一个语法错误。

感谢所有帮助提前

UPDATE:

我得到它的工作

SELECT * 
FROM master_list a 
INNER JOIN bby_report ab USING (item_number, description) 
INNER JOIN sales_report b USING (item_number) 

有没有一种方法可以让我从一个表中排除的说明,并保持它从另一个?原来,描述不是从一张表到另一张表的精确匹配,因此它一直返回零结果。

所以,从表1澄清保持描述和从表2离开了描述,而基于ITEM_NUMBER

+0

能够加入域,我不能完全确定你想要做什么。为什么你的表格与item_number相关?也许你想GROUP BY另一个领域。我可以写一个连接多个字段的查询,但我不确定它会给你预期的结果。你试图涉及哪些领域? – Cfreak

+0

基本上我想要一个综合表,它将来自所有不同表格的数据显示在一个表格中。 ITEM_NUMBER以及每个表的描述重复,所以这是一个有点恼人重读同一线时,它应该只是显示每件 – Fahad

+0

项目编号说明数量成本等我把它归功于 SELECT * FROM master_list一个 INNER JOIN bby_report AB使用(item_number,说明) INNER JOIN sales_report b使用(item_number) 有没有办法让我从一个表中排除描述并将它从另一个表中排除?原来,描述不是从一个表到另一个表的完全匹配,所以它始终返回零结果 – Fahad

回答

0
SELECT * 
FROM master_list a 
INNER JOIN bby_report ab USING (item_number, description) 
INNER JOIN sales_report b USING (item_number)