2010-10-07 16 views
9

Şu anda id, created_at gibi sütun adlarını paylaşan çok sayıda tabloya katılan büyük bir MySql çağrısında hata ayıklama yapıyorum. bireysel gibi sütunları isim olan yerineMySQL Display Table Name Sütunlarla Birlikte

SELECT * AS table.column_name FROM table1 LEFT JOIN etc etc etc... 

: bir yolu böyle bir şey yapmak kesinlikle bunu yapmanın bir yolu varsa ayıklama sürecinin hızlandırılması ile yardımcı olacağını

SELECT table1.`column2' AS 'NAME', table1.`column3` AS ... 

.

Teşekkürler.

Düzenleme: şimdiye kadar yanıtlar için

teşekkürler. Onlar i arıyorum değiliz oldukça neyi ben bir örnek vereyim yüzden benim sorum biraz muğlak olduğunu düşünüyorum:

tablo: Öğrencilerin

Eğer MySQL Şemanıza bu kurulumu olduğunu varsayalım alanları: INT kimlik | INT school_id | VARCHAR adı

tablosu: okullar alanlar: INT id | INT adı

öğrenci içerir:

1 | 1 | "John Doe" 

okullar içerir: Öğrencilerin GELEN MySQL çağrı "SELECT * Doing SOL AÇIK okulları JOIN

1 | "Imaginary School One" 

(students.school_id = schools.id) "verim:

id | school_id | name  | id | name 

1 | 1   | "John Doe" | 1 | "Imaginary School One" 

Biliyoruz tter ve biliyoruz ki, ilk Id ve İsim sütunları, öğrenci tablosuna başvurur ve ikinci Kimlik ve İsim, veri kümesinin isimlendirilmesiyle çok küçük ve açık olduğundan, okul tablosuna başvurur. Ancak, birden fazla sol birleşmeyi içeren bir sonuç kümesiyle ve benzer adlara sahip sütunlarla uğraşmak zorunda kalsaydık, okumak zorlaşmaya başlayacaktı ve normal olarak katılımları izleyerek bunu izlemek zorunda kalacaktınız. Biz

SELECT school.name AS 'school_name', etc etc etc... 

böyle bir şey yaptığını başlayabileceğini Ama bu büyük veri kümeleri ile ilgili başladıktan sonra inanılmaz pratik oluyor.

merak ediyorum

sütun adları yerine bu şekilde görünecektir burada sonuç kümesi döndürmek için bir yol olup olmadığını gerçi:

students.id | students.school_id | students.name | schools.id | schools.name 

Yine benzer bir şey yapmak gerekiyorsa gelecek referanslar için yararlı olacağını .

+0

Harika bir soru. Sadece aynı şeyi deniyorum ama cevap bulamıyorum. :-( –

cevap

1

Sırayla tabloları seçerseniz ve adıyla bir aralayıcı sütunu eklerseniz ne olur.

yani

select 'table1', t1.*, 'table2', t2.*, 'table3', t3.* 
... 

belirli sütunları isim yok En azından bu şekilde.

0

Bunun gibi bir şey mi kastediyorsunuz?Ayrıca sütun adlarının yanı sıra masa isimleri dönmek istiyorsanız

show tables; 
desc <tablename>; 
0

, sen CONCAT işlevini kullanabilirsiniz.

ÖRNEK:

SELECT CONCAT('tableName', field) FROM tableNAme 

Bu aradığınız ne olup olmadığını bize bildirin.

+0

Sıralaması: Eğer yardımcı olursa daha iyi açıklamaya çalışmak için ana soruyu düzenledim. – Matthew

0

Neden tablolarınızı sütun adlarından ayırmak için belirsiz alt çizgi yerine aynı nokta notasyonunu kullanmayın. Sadece arka kenelerdeki takma adı ekleyin. Örneğin:

SELECT students.id `students.id` FROM students; 
İlgili konular