需要帮助来构建查询

时间:2012-09-03 08:25:23

标签: mysql join

我有以下两个表,并希望构建一个与表之间的字段匹配的选择查询:

 tablename       columnname           size  order
    employee        name               25    1
    employee        sex                25    2
    employee        contactNumber      50    3
    employee        salary             25    4
    address         street             25    5
    address         country            25    6

从此我想构建像

这样的查询
select 
        T1.name,
        T1.sex,
        T1.contactNumber,
        T1.salary,
        T2.street,
        T2.contry 
from tablename1[employee] T1,
     tablename2[address] T2

如何构建上述查询,此处的表名可以是Ncolumname也可以是N

2 个答案:

答案 0 :(得分:2)

您应该在表2中有一个外键列,以便您可以将其连接到id上的表1.此外,您正在使用的查询将获取笛卡尔积。

select 
    T1.name,
    T1.sex,
    T1.contactNumber,
    T1.salary,
    T2.street,
    T2.contry 
from tablename1[employee] T1
left join tablename2[address] T2 on T2.employee_id = T1.id

答案 1 :(得分:0)

@Learner:在目前的情况下,无法在表格之间进行交叉引用(Google:foreign-key)。

您要做的是在两个表中添加一个名为employee_id的新列,然后您将能够通过以下方式获取数据:

select T1.*, T2.*
from employee T1, address T2
where T1.employee_id = T2.employee_id