Hangi çeşitli tablodan * seçmek için en iyi yaklaşımı olan ama aynı satır isimde, neden normal i $ row ['name'] kullanabilirsiniz ama bazı adıyla yedi tablolar var ... ben bunu nasıl yapabilirim?
tkz Roberto
Sen açıkça yerine yapmanın sütun adlarını belirtmek gerekir SELECT *
. Burada bazı çelişkili isimlere sahip iki tablodan sonuçlarını döndürmek için takma adlar kullanmak istiyorum nasıl:
SELECT students.id AS student_id, students.name AS student_name, teachers.id AS teacher_id, teachers.name AS teacher_name FROM students, teachers
Genel olarak SELECT ifadelerinde wildcard kullanmak kötü bir uygulamadır. Tabii, önce bazı kod yazarken kendinize bir kaç dakika kaydedebilirsiniz, ancak ayak kendinizi çekim olabilir Eğer ileride veritabanı şemasını değiştirmek eğer / ne zaman. Ayrıca muhtemelen gerçekten ihtiyacınız daha fazla veri dönüyoruz.
Eğer aynı alan adları ile birkaç tablo varsa ve sorgu otomatikleştirmek istiyorsanız, burada bir olasılık:
$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 ...";