使用子查询获取辅助名称

时间:2015-07-23 19:28:19

标签: php mysql

我有两个表,第一个表包含类别列表,第二个表包含配置文件信息以及第一个表类别id作为外键。如下

表1

id  CATEGORY 
1    first   
2    second

表2

id  CATEGORY name     phone
1    2       John    9999999999

如何检索表2记录以及类别名称(不是id:2,如表2所示)

我试过了,

SELECT category, name, phone FROM table2;

我需要看到以下行作为结果

second, john, 9999999999

让我离开这一步,先谢谢。

3 个答案:

答案 0 :(得分:1)

这应该有效:

SELECT t1.category, t2.name, t2.phone 
FROM table2 AS t2 
JOIN table1 AS t1 
ON t1.id = t2.category

答案 1 :(得分:1)

您需要的是JOIN,这意味着您可以根据某些标准将一个表中的行与另一个表中的行相关联,从而“合并”两个表。

在您的情况下,标准是CATEGORYtable2的值必须等于IDtable1的值,表示如下:

SELECT table1.category,
       table2.name,
       table2.phone
FROM   table2
JOIN   table1
  ON   table2.category = table1.id

如果需要,您可以添加WHERE子句以将结果限制为特定行,例如WHERE table1.id = 9999999999会过滤类别为9999999999的行。

答案 2 :(得分:0)

您可以进行INNER JOIN并从表1中获取类别,如下所示:

SELECT tb1.category, tb2.name, tb2.phone 
FROM table2 tb2
INNER JOIN table1 tb1 on tb2.category = tb1.id
WHERE tb2.id = 1;

希望它有所帮助!