logo

МиСКЛ ЦРОСС ЈОИН

МиСКЛ ЦРОСС ЈОИН се користи за комбиновање свих могућности две или више табела и враћа резултат који садржи сваки ред из свих табела које доприносе. ЦРОСС ЈОИН је такође познат као КАРТЕЗИАН ЈОИН, који обезбеђује картезијански производ свих повезаних табела. Декартов производ се може објаснити као сви редови присутни у првој табели помножени са свим редовима присутним у другој табели. Слично је унутрашњем спајању, где услов спајања није доступан са овом клаузулом.

То можемо разумети са следећим визуелним приказом где ЦРОСС ЈОИН враћа све записе из табеле1 и табеле2, а сваки ред је комбинација редова обе табеле.

МиСКЛ ЦРОСС ЈОИН

МиСКЛ ЦРОСС ЈОИН синтакса

Кључна реч ЦРОСС ЈОИН се увек користи са наредбом СЕЛЕЦТ и мора бити написана после клаузуле ФРОМ. Следећа синтакса преузима све записе из обе спојене табеле:

претварање стринга у цео број у Јави
 SELECT column-lists FROM table1 CROSS JOIN table2; 

У горњој синтакси, листе колона су име колоне или поља које желите да вратите, а табле1 и табле2 су назив табеле из које преузимате записе.

МиСКЛ ЦРОСС ЈОИН Пример

Узмимо неке примере да бисмо разумели рад клаузуле Лефт Јоин или Лефт Оутер Јоин:

ЦРОСС ЈОИН клаузула за спајање две табеле

Овде ћемо направити две табеле 'муштерије' и 'контакти' који садржи следеће податке:

Табела: купци

МиСКЛ ЦРОСС ЈОИН

Табела: контакти

баци стринг у инт
МиСКЛ ЦРОСС ЈОИН

Да бисте преузели све записе из обе табеле, извршите следећи упит:

 SELECT * FROM customers CROSS JOIN contacts; 

Након успешног извршења упита, он ће дати следећи излаз:

МиСКЛ ЦРОСС ЈОИН

Када се изврши наредба ЦРОСС ЈОИН, приметићете да приказује 42 реда. То значи да се седам редова из табеле купаца множи са шест редова из табеле контаката.

НАПОМЕНА: Да бисте избегли резултат поновљених колона два пута, препоручује се да користите појединачна имена колона уместо СЕЛЕЦТ * наредбе.

Проблем двосмислених колона у МиСКЛ ЦРОСС ЈОИН

Понекад морамо да преузмемо изабране записе колона из више табела. Ове табеле могу садржати нека слична имена колона. У том случају, МиСКЛ ЦРОСС ЈОИН изјава даје грешку: име колоне је двосмислено. То значи да је име колоне присутно у обе табеле, а МиСКЛ се збуни око тога коју колону желите да прикажете. Следећи примери то јасније објашњавају:

 SELECT customer_id, cust_name, income, order_id, price FROM customer CROSS JOIN orders; 

Горњи ЦРОСС ЈОИН даје грешку као што је приказано на слици испод:

МиСКЛ ЦРОСС ЈОИН

Овај проблем се може решити коришћењем имена табеле пре назива колоне. Горњи упит се може поново написати као:

 SELECT customer.customer_id, customer.cust_name, customer.income, orders.order_id, orders.price FROM customer CROSS JOIN orders; 

Након извршења горњег упита, добићемо следећи излаз:

пречица за сва велика слова
МиСКЛ ЦРОСС ЈОИН

ЛЕФТ ЈОИН са клаузулом ВХЕРЕ

Клаузула ВХЕРЕ се користи за враћање филтер резултат из табеле. Следећи пример то илуструје клаузулом ЦРОСС ЈОИН:

 SELECT customers.customer_id, customers.cust_name, customers.income, orders.order_id, orders.price FROM customers CROSS JOIN orders USING(customer_id) WHERE price&gt;1500 AND price<5000; < pre> <p>This statement gives the below result:</p> <img src="//techcodeview.com/img/mysql-tutorial/98/mysql-cross-join-7.webp" alt="MySQL CROSS JOIN"> <h3>MySQL CROSS JOIN Multiple Tables</h3> <p>We have already created two tables named &apos; <strong>customers&apos;</strong> and &apos; <strong>orders&apos;</strong> . Let us create one more table and name it as &apos; <strong>contacts&apos; that contains the following data:</strong> </p> <img src="//techcodeview.com/img/mysql-tutorial/98/mysql-cross-join-8.webp" alt="MySQL CROSS JOIN"> <p>Here, we are going to explain CROSS JOIN with LEFT JOIN using three tables. Execute the following statement to join the three table customers, orders, and contacts. In this statement, first CROSS JOIN completed between orders and contacts, and then LEFT JOIN executes according to the specified condition.</p> <pre> SELECT * FROM customer LEFT JOIN(orders CROSS JOIN contacts) ON customer.customer_id=contact_id ORDER BY income; </pre> <p>After successful execution of the above query, it will give the following output:</p> <img src="//techcodeview.com/img/mysql-tutorial/98/mysql-cross-join-9.webp" alt="MySQL CROSS JOIN"> <hr></5000;>

Након успешног извршења горњег упита, он ће дати следећи излаз:

МиСКЛ ЦРОСС ЈОИН