使用多个查询加入 mysql


Join mysql with multiple queries

我需要连接三个不同的SQL表:

  1. 表"互联网"与列id|type|status
  2. 表"type_list",id|type_name
  3. 表"status_list",列id|status_name

我想从另外两个表(type_list、status_list)输出文本,但不输出当前我在表"互联网"中的数字值。

我也不想做懒惰的编程 - PHP 数组使 ID 等于类似的东西

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

因为文本已经在表中,所以我只是不知道如何连接它们并将文本作为查询输出,并在一个查询中组合在一起。

使用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 文档了解更多信息。

只需使用所需的字段编写选择即可。

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

为此你需要一个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实际上不是必需的,我只是把它放在那里以明确

发生了什么