2009-09-09 15 views

回答

0

您可以使用查詢

SELECT t1.name AS t1_name, t2.name AS t2_name 
FROM table1 t1 
INNER JOIN table t2 ON .... 

然後

$row['t1_name'] 
$row['t2_name'] 
+0

這就是我需要的... tkz ... – Roberto

0

你需要明確指定列名的,而不是做SELECT *。這裏是你如何使用別名來從有一些衝突的名字兩個表返回結果:

SELECT students.id AS student_id, students.name AS student_name, teachers.id AS teacher_id, teachers.name AS teacher_name FROM students, teachers 

一般來說它是不好的做法在SELECT語句中使用通配符。當然,當你第一次編寫代碼時,你可以節省幾分鐘時間,但是如果/將來你改變數據庫模式,你可能會在腳下自拍。您也可能會返回比您真正需要的數據更多的數據。

如果你有相同的字段名稱幾個表,你想自動查詢,這裏有一個可能性:

$tables = array('table1', 'table2', 'table3', 'table4'); 
$fields = array('field1', 'field2', 'field3', 'field4'); 
$select = ''; 
$from = ''; 
foreach ($tables as $table) { 
    if ($from) $from .= ', '; 
    $from .= $table; 
    foreach ($fields as $field) { 
    if ($select) $select .= ', '; 
    $select .= "$table.$field as {$table}_{$field}"; 
    } 
} 
$sql = "SELECT $select FROM $from WHERE ..."; 
+0

是的,但例如,我有七個表格,每一天的一個星期,並且都有in1,out1,in2,out2行, 我需要得到七個表中的所有in1和out1,我可以這樣做,我的問題是,在PHP中,我該如何處理這個...導致所有行都具有相同的名稱! 最好的選擇是選擇sundayin1作爲sundayin1從... ??? – Roberto

+0

我添加了一些PHP代碼,如果你有七個幾乎相同的表,你可以用它來自動化這個。 – pix0r