Node.js MySQL Join

Присъединете се към две или повече таблици

Можете да комбинирате редове от две или повече таблици въз основа на свързана колона между тях, като използвате оператор JOIN.

Помислете, че имате таблица „потребители“ и таблица „продукти“:

потребители

[
  { id: 1, name: ‘John’, favorite_product: 154},
  { id: 2, name: ‘Peter’, favorite_product: 154},
  { id: 3, name: ‘Amy’, favorite_product: 155},
  { id: 4, name: ‘Hannah’, favorite_product:},
  { id: 5, name: ‘Michael’, favorite_product:}
]

продукти

[
  { id: 154, name: ‘Chocolate Heaven’ },
  { id: 155, name: ‘Tasty Lemons’ },
  { id: 156, name: ‘Vanilla Dreams’ }
]

Тези две таблици могат да се комбинират, като се използва favorite_productполето на потребителите и полето продукти id.

Пример

Изберете записи със съвпадение и в двете таблици:

Опитайте сами »

Забележка: Можете да използвате INNER JOIN вместо JOIN. И двамата ще ви дадат един и същ резултат.

Запазете горния код във файл, наречен „demo_db_join.js“, и стартирайте файла:

Изпълнете „demo_db_join.js“C:\Users\Your Name>node demo_db_join.js

Което ще ви даде този резултат:[
  { user: ‘John’, favorite: ‘Chocolate Heaven’ },
  { user: ‘Peter’, favorite: ‘Chocolate Heaven’ },
  { user: ‘Amy’, favorite: ‘Tasty Lemons’ }
]

Както можете да видите от резултата по-горе, връщат се само записите със съвпадение в двете таблици.


Ляво присъединяване

Ако искате да върнете всички потребители, без значение дали имат любим продукт или не, използвайте израза LEFT JOIN:

Пример

Изберете всички потребители и техния любим продукт:

Опитайте сами »

Което ще ви даде този резултат:[
  { user: ‘John’, favorite: ‘Chocolate Heaven’ },
  { user: ‘Peter’, favorite: ‘Chocolate Heaven’ },
  { user: ‘Amy’, favorite: ‘Tasty Lemons’ },
  { user: ‘Hannah’, favorite: null },
  { user: ‘Michael’, favorite: null }
]


Правилно присъединяване

Ако искате да върнете всички продукти и потребителите, които ги имат за любими, дори ако нито един потребител не ги има за свои любими, използвайте изявлението RIGHT JOIN:

Пример

Изберете всички продукти и потребителя, който ги има за любими:

Опитайте сами »

Което ще ви даде този резултат:

[
  { user: 'John', favorite: 'Chocolate Heaven' },
  { user: 'Peter', favorite: 'Chocolate Heaven' },
  { user: 'Amy', favorite: 'Tasty Lemons' },
  { user: null, favorite: 'Vanilla Dreams' }
]

Забележка: Хана и Майкъл, които нямат любим продукт, не са включени в резултата.