Python MySQL Yhdistä

组合两张或更多表

您可以使用 JOIN 语句,根据它们之间的相关列组合两个或多个表中的行。

假设您有 "users" 表和 "products" 表:

users

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

products

{ id: 154, name: 'Chocolate Heaven' },
{ id: 155, name: 'Tasty Lemons' },
{ id: 156, name: 'Vanilla Dreams' }

可以使用 users 的 fav 字段和 products 的 id 字段来组合这两个表。

Esimerkki

组合用户和产品,查看用户最喜欢的产品名称:

import mysql.connector
mydb = mysql.connector.connect(
  host="localhost",
  user="yourusername",
  passwd="yourpassword",
  database="mydatabase"
)
mycursor = mydb.cursor()
sql = "SELECT \

  users.name AS user, \

  products.name AS favorite \

  FROM users \

  Sisäinen Yhdistä products ON users.fav = products.id"
mycursor.execute(sql)
myresult = mycursor.fetchall()
for x in myresult:
  print(x)

Suorita Esimerkki

Huomautus:Voit käyttää Yhdistä -lauseen Sisäisen Yhdistän sijaan. Saat saman tuloksen.

Vasen Yhdistä

Esimerkissä Hannah ja Michael eivät sisälly tuloksiin, koska Sisäinen Yhdistä näyttää vain vastaavat tietueet.

Jos haluat näyttää kaikki käyttäjät, vaikka heillä ei ole rakastettuja tuotteita, käytä Vasen Yhdistä -lause:

Esimerkki

Valitse kaikki käyttäjät ja heidän rakastamansa tuotteet:

sql = "SELECT \

  users.name AS user, \

  products.name AS favorite \

  FROM users \

  Vasen Yhdistä products ON users.fav = products.id"

Suorita Esimerkki

Oikea Yhdistä

Jos haluat palauttaa kaikki tuotteet ja ne rakastavat käyttäjät, vaikka heitä ei ole, käytä Oikea Yhdistä -lause:

Esimerkki

Valitse kaikki tuotteet ja niitä rakastavat käyttäjät:

sql = "SELECT \

  users.name AS user, \

  products.name AS favorite \

  FROM users \

  Oikea Yhdistä products ON users.fav = products.id"

Suorita Esimerkki

Huomautus:Hannah ja Michael, jotka eivät ole kiinnostuneita mistään tuotteista, eivät sisälly tuloksiin.