我有這個PHP至今導出爲CSV文件:MySQL查詢包括所有的「表2」中的「表1」
$link = mysql_connect($host, $user, $pass) or die("No se pudo conectar." . mysql_error());
mysql_select_db($db) or die ("No se pudo conectar.");
$csv_output = "Creado el, Id de Ticket, Departamento, Tema de Ayuda, Prioridad, Nombre de Staff, Apellido de Staff, Nombre del cliente, Email del cliente, Asunto, Telefono, Extension, Estado de ticket, Direccion, Marca, Tienda, Lugar de Tienda, Codigo del PC, Fecha de compra, Factura, Documento, ID, Celular, Serie del Producto, Estado del Producto, Descripcion(PyP Defectuosa), Serie(PyP Defectuosa), Proveedor(PyP Defectuosa), Factura(PyP Defectuosa), Guia(PyP Defectuosa), Fecha(PyP Defectuosa), Garantía(PyP Defectuosa), Cantidad(PyP Defectuosa), Estado(PyP Defectuosa), Comentario(PyP Defectuosa), Usuario(PyP Defectuosa), Courier(PyP Defectuosa), N°Remito(PyP Defectuosa), Fecha de envio(PyP Defectuosa)";
$csv_output .= "\n";
$query = "(SELECT t1.created, t1.ticket_id, t3.dept_name, t1.helptopic, t1.priority_id, t2.firstname, t2.lastname, t1.name, t1.email, t1.subject, t1.phone, t1.phone_ext, t1.status, t1.address, t1.pcbrand, t1.storeLocation, t1.place, t1.pcCode, t1.purchaseDate, t1.invoice, t1.tipoid, t1.numId, t1.cell_phone, t1.nserieprod, t1.estprod, t4.ticket_id, t4.`desc` , t4.serial, t4.supplier, t4.invoice, t4.guide, t4.date, t4.warranty, t4.volume, t4.state, t4.comment, t4.user, t4.nomcourier, t4.nremito, t4.fenvio
FROM ticket AS t1, staff AS t2, department AS t3, prod_cambio AS t4
WHERE t2.dept_id = t3.dept_id
AND t1.staff_id = t2.staff_id
AND t1.ticket_id = t4.ticket_id
order by t1.ticket_id)";
$result = mysql_query($query);
if (mysql_num_rows($result) > 0) {
while ($row = mysql_fetch_row($result)) {
for ($j = 0; $j < 39; $j++) {
if ($j <= 25){
$csv_output .= $row[$j]. " ,";
}
$csv_output .= $row[$j]. " ,";
}
$csv_output .= "\n";
}
}
$filename = $file."_".date("Y-m-d_H-i",time());
header("Content-type: application/vnd.ms-excel");
header("Content-disposition: csv" . date("Y-m-d") . ".csv");
header("Content-disposition: filename=".$filename.".csv");
print $csv_output;
exit;
I'm選擇2個diferent表,並試圖將它們轉換於一體。 我的問題是這樣的:
Created: Ticket_id (Table 1): Dept_name: Priority_id: Firstname: Ticket_id (Table 2):
2011-11-23 10:04:33 2 Soporte Lima 2 Juan Carlos 2
2011-11-23 10:28:55 3 Soporte Lima 2 Antonio Arturo 3
2011-11-23 10:42:07 4 Soporte Lima 2 Renzo 4
2011-11-23 10:44:33 5 Soporte Lima 2 Renzo 5
2011-11-23 10:44:33 5 Soporte Lima 2 Renzo 5
2011-11-23 10:44:33 5 Soporte Lima 2 Renzo 5
2011-11-23 11:00:58 6 Soporte Lima 2 Miguel 6
如果你注意到了「表1」每次都重複TICKET_ID在「表2」匹配「表1」我怎麼能打印事端像THI:
Created: Ticket_id (Table 1): Dept_name: Priority_id: Firstname: Ticket_id (Table 2):
2011-11-23 10:04:33 2 Soporte Lima 2 Juan Carlos 2
2011-11-23 10:28:55 3 Soporte Lima 2 Antonio Arturo 3
2011-11-23 10:42:07 4 Soporte Lima 2 Renzo 4
2011-11-23 10:44:33 5 Soporte Lima 2 Renzo 5
5
5
2011-11-23 11:00:58 6 Soporte Lima 2 Miguel 6
重複當
在「表1」的部分空白只打印了「表2」列
我想包括所有的「表2」中的「表1」的結果,但沒有重複的信息的「表「1列,而不是空格,並繼續打印」表2「列。 有沒有辦法做到這一點?
訣竅在於LEFT JOIN。例如'FROM staff AS t2 LEFT JOIN ticket AS t1 ON(t1.staff_id = t2.staff_id),department AS t3,prod_cambio AS t4'。那麼你不應該在where子句中加入't1.staff_id = t2.staff_id'。您應該接收NULL而不是空格。 – Nightwolf