0

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

  1. 带有列的“互联网”表id|type|status
  2. 带有列的表“type_list”id|type_name
  3. 带有列的表“status_list”id|status_name

我想从另外两个表(type_list,status_list)中输出文本,但不输出值作为我目前在表“internet”中的数字。

我也不想进行懒惰的编程-PHP数组使ID等于类似

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

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

4

3 回答 3

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 文档以获取更多信息。

于 2013-10-18T10:15:06.613 回答
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
于 2013-10-18T10:15:25.243 回答
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实际上不是必需的,我只是把它放在那里以说明发生了什么

于 2013-10-18T10:18:21.540 回答