使用多个查询加入mysql

时间:2013-10-18 10:11:59

标签: php mysql sql join

我需要加入三个不同的SQL表:

  1. 表格“互联网”,其中包含id|type|status
  2. 表格“type_list”,其中包含id|type_name
  3. 表“status_list”,其中包含id|status_name
  4. 我想从其他两个表(type_list,status_list)输出文本,但不想输出当前我在表“internet”中的数字值。

    我也不想做懒惰编程 - PHP数组使ID等于

    $type_list = array("1"=>"VDSL2","2"=>"ADSL"); 
    $status_list = array("1"=>"Pending","2"=>"Active");
    

    因为文本已经在表格中,我只是不知道如何加入它们并在一个查询中将文本作为查询组合在一起。

3 个答案:

答案 0 :(得分:0)

使用JOIN

SELECT i.id,  type_name, status_name
FROM internet i
LEFT OUTER JOIN type_list t ON t.id = i.type
LEFT OUTER JOIN status_list s ON s.id= i.status

阅读MySQL doc了解更多信息。

答案 1 :(得分:0)

只需用您想要的字段编写选择。

select internet.id,type_name,status_name from internet 
inner join type_list
on type_list.id=internet.id
inner join status_list
on status_list.id=internet.id

答案 2 :(得分:0)

为此你需要一个LEFT JOIN,如下所示:

SELECT i.id, t.type_name, s.status_name
FROM internet AS i
LEFT JOIN type_list AS t ON t.id = i.id
LEFT JOIN status_list AS s ON s.id= i.id

根据您的问题,您不清楚要加入查询的字段。在上面的示例中,查询在id字段上加入。

请注意,AS实际上并不是必需的,我只是把它放在那里以明确发生了什么