Mysql Join inner join left join Несколько таблиц null на правой таблице - PullRequest
1 голос
/ 29 марта 2012

Как отобразить несколько таблиц в MySQL, я хочу отобразить некоторые данные, такие как: table1.autono, table1.name, table1.date.table1 на правой таблице я не вижу данных спасибо за вашу помощь

SELECT 
table1.autono, table2.number_reg, table3.no_auto, table4.address, table5.name
FROM table2
INNER JOIN table5 ON table3.no_auto=table5.auto_no
LEFT OUTER JOIN table3 ON table2.number_reg=table3.no_auto
LEFT JOIN table1 ON table3.auto_no=table1.name
WHERE 1=1
ORDER BY table2.number_reg

1 Ответ

0 голосов
/ 29 марта 2012

Вы всегда можете использовать AS

$query = mysql_query(SELECT tbl.column AS 'tbl.column' FROM tbl AS tbl ... );

, затем итерируем значения и сортируем

foreach(mysql_fetch_assoc($query) as $col=>$val){
   list($tbl,$col) = explode('.',$col);
}

или используйте функции mysql_field_table() и mysql_field_name()

$query = mysql_query(...);
$fieldCt = mysql_num_fields($query);
for($i = 0; $i < mysql_num_fields($query); $i++){
    $field[$i] = mysql_field_table($query,$i).'.'.mysql_field_name($query,$i);
}
for($i = 0; $i < mysql_num_rows($query); $i++){
 foreach($field as $key=>$name){
   $row[$i][$name] = mysql_result($query,$i,$key);
 }
}

Я не проверял это или что-то еще, но это должно сопоставить запрос с массивом $row, где каждая запись является массивом, состоящим из tbl_name.field_name => value записей.

...