MySQL根据列值查询JOIN表

时间:2013-07-17 18:04:54

标签: mysql join

我有两张桌子。一个具有部件号,硬件名称和类型,另一个具有硬件的位置,其中还具有包含硬件的特定箱的位置。垃圾箱没有特定的编号,但具有唯一的名称。第二个表还具有可能随时间变化的硬件和箱的位置。我正在尝试创建一个MySQL查询,它将新表中的数据组合起来,并以逗号分隔文件的形式输出。

表1内容

Part Number | Name          | Type
------------+---------------+---------------
0           | None          | Not Applicable
25          | name1         | type1
150         | name2         | type2

表2目录

Date     | Bin  |  Part Number | Event    | To Location | From Location
---------+------+--------------+----------+-------------+---------------
1/1/2013 | bin1 |  0           | arrive   | location1   | none
1/2/2013 | none |  25          | arrive   | location2   | none
1/2/2013 | none |  150         | relocate | location3   | location2

查询的最终输出应如下所示:

Date     | Bin  | Part Number | Part Name | Type           | Event    | To Location | From Location
---------+------+-------------+-----------+----------------+----------+-------------+--------------
1/1/2013 | bin1 | 0           | None      | Not Applicable | arrive   | location1   | none
1/2/2013 | none | 25          | name1     | type1          | arrive   | location2   | none
1/2/2013 | none | 150         | name2     | type2          | relocate | location2   | location2

2 个答案:

答案 0 :(得分:0)

可能是这个完整的帮助

select Name, Type, t2.Date, t2.Bin, t2.Part Number, t2.Event, t2.To Location, t2.From Location
FROM table1
JOIN table2 as t2    ON (table1.Part Number=t2.Part Number);

概念

SELECT column_name(s)
FROM table1
JOIN table2
ON table1.column_name=table2.column_name;

答案 1 :(得分:0)

试试这个:

SELECT
  *
FROM
  `Table1`
  INNER JOIN `Table2` ON (`Table1`.`Part Number`=`Table2`.`Part Number`)

为了更好地进行查询,您需要定义要返回的所有列,而不是*