⊗pyPmDOGD 123 of 129 menu

Obtención de datos de tablas relacionadas en Python

Hagamos una consulta que obtenga todos los usuarios junto con sus ciudades. Para ello será necesario el comando LEFT JOIN:

Su sintaxis es la siguiente:

SELECT campos FROM nombre_tabla LEFT JOIN nombre_tabla_relacionada ON condición_vinculación WHERE condición_selección

Analicemos las partes individuales de la sintaxis de este comando.

Campos

Dado que la selección se realiza desde varias tablas, seleccionar todos los campos mediante * no funcionará. La siguiente consulta seleccionará campos solo de la tabla principal, pero no de la tabla relacionada:

SELECT *

Para que los datos se seleccionen de todas las tablas, es necesario especificar el nombre de la tabla antes de *:

SELECT users.*, cities.*

O bien, se pueden enumerar los campos que necesitamos especificando el nombre de la tabla antes de ellos:

SELECT users.name, cities.name

Estos dos métodos tienen un problema. El asunto es que si los campos en las tablas tienen nombres idénticos, en el array de Python ocurrirá un conflicto de nombres y solo prevalecerá un campo, y el segundo no estará presente.

Para resolver el problema, es necesario renombrar los nombres en conflicto mediante el comando as:

SELECT users.name, cities.name as city_name

Vínculo

Después del comando ON debemos especificar los campos de las dos tablas mediante los cuales se realiza el vínculo. En nuestro caso, será el campo id de la tabla de ciudades y el campo city_id de la tabla de usuarios:

ON cities.id=users.city_id

Consulta

Finalmente, la consulta que obtendrá los usuarios junto con sus ciudades tendrá el siguiente aspecto:

SELECT users.name, cities.name as city_name FROM users LEFT JOIN cities ON cities.id=users.city_id

Tareas prácticas

Supongamos que tienes una tabla con productos y una tabla con sus categorías. Escribe una consulta que obtenga los nombres de los productos junto con sus categorías.

Español
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Usamos cookies para el funcionamiento del sitio, análisis y personalización. El procesamiento de datos se realiza de acuerdo con la Política de privacidad.
aceptar todas configurar rechazar