2010-10-07 11 views
9

Jestem obecnie debugowania ogromny połączenia MySQL, która łączy dużą ilość stolików, które podzielają kolumn nazwy, takie jak ID, created_at itp zacząłem zbieranie go od siebie, ale zastanawiałem się, czy nie było sposób zrobić coś takiego:MySQL Wyświetlacz Nazwa tabeli Wraz z kolumnami

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

zamiast konieczności indywidualnie wymienić kolumny jak:

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

byłoby zdecydowanie pomóc w przyspieszeniu procesu debugowania, jeśli istnieje sposób, aby to zrobić.

Dzięki.

Edit:

Dzięki za odpowiedzi tak daleko. Oni nie całkiem to, czego szukam i myślę, że moje pytanie było nieco niejasne więc dam przykład:

Załóżmy, że masz tę konfigurację w swoim MySql Schemat:

tabeli: Studenci pola: INT id | INT school_id | VARCHAR nazwa

tabeli: szkoły pola: id INT | INT nazwa

studenci zawiera:

1 | 1 | "John Doe" 

szkoły zawiera:

1 | "Imaginary School One" 

Wykonywanie połączenia mysql „select * from uczniów szkół LEFT JOIN ON (students.school_id = schools.id) "da:

id | school_id | name  | id | name 

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

Wiemy, być tter i wiemy, że pierwsze kolumny Id i Name odnoszą się do tabeli uczniów, a drugi Id i Nazwa odnoszą się do tabeli szkół, ponieważ zbiór danych jest naprawdę mały i jednoznaczny z jego nazewnictwem. Jednakże, gdybyśmy mieli do czynienia z zestawem wyników, który zawierał wiele lewych złączeń i kolumn o podobnych nazwach, to zaczęłoby to być trudne do odczytania i normalnie musiałbyś je prześledzić, wykonując połączenia. Moglibyśmy zacząć robić coś

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

Ale to dostaje bardzo niepraktyczne po uruchomieniu czynienia z dużymi zbiorami danych.

Zastanawiałem się jednak, jeśli istnieje sposób, aby zwrócić zestaw wyników w którym nazwy kolumn będzie wyglądać tak zamiast:

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

który byłby przydatny dla przyszłych odniesień jeśli muszę zrobić coś podobnego jeszcze raz .

+0

Świetne pytanie. Po prostu próbuję zrobić to samo, ale nie mogę znaleźć odpowiedzi. :-( –

Odpowiedz

1

Co się stanie, jeśli wybierzesz tabele w kolejności i dodasz kolumnę z spacjami z nazwą.

tj

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

Przynajmniej w ten sposób nie trzeba by wymienić konkretne kolumny.

0

masz na myśli coś takiego?

show tables; 
desc <tablename>; 
0

Jeśli chcesz również zwrócić nazwy tabel wraz z nazwami kolumn, można użyć funkcji CONCAT.

PRZYKŁAD:

SELECT CONCAT('tableName', field) FROM tableNAme 

Daj nam znać, jeśli to jest to, czego szukasz.

+0

Sort of. Zmieniłem główne pytanie, aby spróbować wyjaśnić to lepiej, jeśli pomaga. – Matthew

0

Dlaczego nie używać tej samej notacji kropki zamiast niejednoznacznych podkreśleń do oddzielania tabel od nazw kolumn. Po prostu umieść alias w tyłku zwrotnym. Na przykład:

SELECT students.id `students.id` FROM students; 
Powiązane problemy