Python MySQL Unir

Combinar dos o más tablas

Puedes usar la cláusula JOIN para combinar filas de dos o más tablas basadas en columnas relacionadas.

Supongamos que tienes las tablas "users" y "products":

users

{ id: 1, nombre: 'John', fav: 154},
{ id: 2, nombre: 'Peter', fav: 154},
{ id: 3, nombre: 'Amy', fav: 155},
{ id: 4, nombre: 'Hannah', fav:},
{ id: 5, nombre: 'Michael', fav:}

products

{ id: 154, nombre: 'Paraiso de Chocolate' },
{ id: 155, nombre: 'Limones Deliciosos' },
{ id: 156, nombre: 'Sueños de Vanilla' }

Se puede usar el campo de users fav campo y los de products id campo para combinar estas dos tablas.

Ejemplo

Combinar usuarios y productos para ver el nombre del producto favorito del usuario:

importar mysql.connector
mi_db = mysql.connector.connect(
  anfitrión="localhost",
  usuario="tu_usuario",
  contraseña="tu_contraseña",
  base_de_datos="mi_base_de_datos"
)
mi_cursor = mi_db.cursor()
sql = "SELECT \

  users.name COMO usuario, \

  products.name COMO favorite \

  FROM users \

  UNION INTERNA products ON users.fav = products.id"
mycursor.execute(sql)
myresult = mycursor.fetchall()
for x in myresult:
  print(x)

Ejecutar Ejemplo

Notas:Puede usar JOIN en lugar de INNER JOIN. Obtendrá el mismo resultado.

UNION IZQUIERDA

En el ejemplo anterior, Hannah y Michael se excluyen de los resultados porque el INNER JOIN solo muestra los registros coincidentes.

Si desea mostrar todos los usuarios, incluso si no tienen productos favoritos, utilice la sentencia UNION IZQUIERDA:

Ejemplo

Seleccionar todos los usuarios y sus productos favoritos:

sql = "SELECT \

  users.name COMO usuario, \

  products.name COMO favorite \

  FROM users \

  UNION IZQUIERDA products ON users.fav = products.id"

Ejecutar Ejemplo

UNION DERECHA

Si desea devolver todos los productos y los usuarios que los aman, incluso si no hay usuarios que amen estos productos, utilice la sentencia UNION DERECHA:

Ejemplo

Seleccionar todos los productos y los usuarios que los aman:

sql = "SELECT \

  users.name COMO usuario, \

  products.name COMO favorite \

  FROM users \

  UNION DERECHA products ON users.fav = products.id"

Ejecutar Ejemplo

Notas:Hannah y Michael, que no están interesados en ningún producto, no se incluyen en los resultados.