假设我有这个查询:
SELECT first, last, operation_code, serial_no FROM list_data WHERE cid='".$cid."'
并假设查询结果是这样的:
john, smith, 100, 000000001
john, doe, 200, 000000002
jane, doe, 300, 000000003
我想向其他表格的结果中添加一些数据。像这样:
john, smith, 100 - description for 100, 000000001
john, doe, 200 - description for 200, 000000002
jane, doe, 300 - description for 300, 000000003
另一个表具有一个operation_code列和一个称为operation_text的描述列。因此,当原始查询正在通过第一个表来获取记录时,它是否可以使用operation_code号来从operation_codes表中获取该操作代码的描述?
不知道这是否重要,但是它需要适合我使用的这种csv文件创建方法。
$output = fopen('php://output', 'w');
fputcsv($output, array('first', 'last', 'operation_code', 'serial_no'));
$rows = mysql_query("SELECT first, last, operation_code, serial_no FROM list_data WHERE cid='".$cid."' ORDER BY last ASC, first ASC");
while ($row = mysql_fetch_assoc($rows)) fputcsv($output, $row);
因此,在创建csv文件时,我希望代码号和描述在同一列中。在代码和描述之间没有多余的逗号,除非没有其他方法,那么如果将描述放在自己的列中就可以了,例如:
Header line of csv:
first, last, operation_code, operation_text, serial_no
body of csv:
john, smith, 100, description for 100, 000000001
john, doe, 200, description for 200, 000000002
jane, doe, 300, description for 300, 000000003
最佳答案
这只是第二张表的INNER JOIN:
SELECT first, last, list_data.operation_code, second_table.operation_text, serial_no
FROM list_data INNER JOIN second_table ON list_data.operation_code = second_table.operation_code
WHERE cid='".$cid."'
在这里,我们在
list_data
上将second_table
连接到operation_code
,然后在该新字段中引入的语句的SELECT
部分中。请注意,对于operation_code
,因为它存在于查询中的两个表中,所以我们必须指定所需的operation_code
来自list_data
表(由于它是一个INNER JOIN,所以两者都可以使用,但是必须指定)。