2011-07-26 14 views
11

Al hacer una unión (interior, exterior izquierdo, exterior derecho o lo que sea), ¿cómo puedo especificar qué columnas de la tabla unir en la tabla original?columnas específicas de MySQL en join?

Consideremos el siguiente ejemplo:

SELECT FirstName FROM User LEFT OUTER JOIN Provider ON User.ProviderID = Provider.ID 

Esto habría SELECT Nombre de usuario, pero seleccione todo, desde proveedor. ¿Cómo puedo especificar qué partes del proveedor deben incluirse en el conjunto de resultados?

Respuesta

10

De esta manera:

SELECT User.FirstName, Provider.* FROM User LEFT OUTER JOIN Provider ON User.ProviderID = Provider.ID 
+0

¿no seleccionará esto todo de Proveedor? –

+0

¿no es esto lo que él quiere? al menos eso es lo que entiendo *, pero selecciona todo del proveedor * –

+2

Tendrás que mirar la última oración :). "¿Cómo puedo especificar qué partes del proveedor deberían incluirse en el conjunto de resultados?" –

5
SELECT User.FirstName, Provider.ID, Provider.YourExtraColumnname, Provider.YourExtraColumnname2 FROM User LEFT OUTER JOIN Provider ON User.ProviderID = Provider.ID 
4
  SELECT `User`.FirstName, Provider.* 
      FROM `User` 
LEFT OUTER JOIN Provider 
      ON `User`.ProviderID = Provider.ID 

1. Se utiliza el nombre de la tabla antes de la columna, o si alias de tablas, puede utilizar el alias.

E.g. LEFT OUTER JOIN Provider p y entonces se podría tener acceso a proveedores de identificación en la cláusula select así:

SELECT `User`.FirstName, p.ID 

2. He añadido acentos abiertos alrededor del nombre de la tabla User, porque es una palabra reservada para MySQL

2

Puede especificar la específica elementos para elegir, como:

SELECT User.FirstName, Provider.ID, Provider.Name FROM User LEFT OUTER JOIN Provider ON User.ProviderID = Provider.ID