哪一個是最好的方法來選擇*從各種表中,但具有相同的行名,通常導致我通常使用$ row ['name']但我有七個表有些名字......我怎麼能做到這一點?PHP/MySQL - 選擇不同的表,用一些行名
TKZ 羅伯託
哪一個是最好的方法來選擇*從各種表中,但具有相同的行名,通常導致我通常使用$ row ['name']但我有七個表有些名字......我怎麼能做到這一點?PHP/MySQL - 選擇不同的表,用一些行名
TKZ 羅伯託
您可以使用查詢
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']
你需要明確指定列名的,而不是做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 ...";
這就是我需要的... tkz ... – Roberto