在sql-query中使用数组/变量

时间:2014-03-18 10:05:54

标签: mysql sql

我确定有办法解决这个问题,但我不知道了......

我有一张包含所有数据的大表。

table I的行中包含以下信息:

    columnA1: groupName
    columnA2: groupID
    ColumnB3: name
    columnB4: groupID

现在我需要显示如下结果:

[columnB3],[columnA1]

更多信息(因为我没有足够的声誉,我无法上传图片......):

我的表格

groupId    - groupName     -  name      -  groupId2     -  category
   1       -   IT          -  null      -  null         -     2
   2       -   HR          -  null      -  null         -     2
   null    -  null         -  Paul      -  1            -     1
   null    -  null         -  Bob       -  1            -     1
   null    -  null         -  An        -  2            -     1
   null    -  null         -  Apple     -  null         -     3
   null    -  null         -  Microsift -  null         -     3

查询结果:

name    groupName

Paul      IT
Bob       IT
An        HR

如果我选择了所有结果,我会获得65k行。那么我怎样才能防止我需要对每一行进行查询以获得正确的groupName而不是groupId2?

我以为我可以"保存"第一个查询,包含所有groupID&group和名称,并使用此信息在第二个查询中将groupID更改为groupName但我不知道如何...

如果不清楚,请问。

编辑:只需要category = 1

的行

2 个答案:

答案 0 :(得分:0)

试试这个:

SELECT T2.name,T1.groupName
FROM Table1 T1 INNER JOIN
Table1 T2 on T1.groupID=T2.groupId2
WHERE T2.category=1

结果:

NAME    GROUPNAME

Paul    IT
Bob     IT
An      HR

请参阅SQL Fiddle

中的结果

答案 1 :(得分:0)

你可以试试这个: SELECT DISTINCT A.Groupname, B.name FROM tablename A JOIN tablename B ON A.GroupID = B.GroupID