我需要连接三个不同的SQL表:
- 表"互联网"与列
id|type|status
- 表"type_list",
id|type_name
列 - 表"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
实际上不是必需的,我只是把它放在那里以明确