ایس کیو ال جوئن
- ਪਿਛਲਾ ਪੰਨਾ SQL Aliases
- ਅਗਲਾ ਪੰਨਾ SQL Inner Join
SQL join ਦੀ ਵਰਤੋਂ ਕੀਤੀ ਜਾਂਦੀ ਹੈ ਤਾਂ ਕਿ ਦੋ ਜਾਂ ਵੱਧ ਸ਼ੈਖਤੀਆਂ ਵਿੱਚ ਸਿਰਲੇਖਾਂ ਦਰਮਿਆਨ ਸਬੰਧ ਦੇ ਅਧਾਰ `ਤੇ ਨਤੀਜੇ ਲਏ ਜਾ ਸਕਣ।
Join ਅਤੇ Key
ਕਦੇ-ਕਦੇ ਪੂਰੇ ਨਤੀਜੇ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ, ਦੋ ਜਾਂ ਵੱਧ ਸ਼ੈਖਤੀਆਂ ਤੋਂ ਨਤੀਜੇ ਲੈਣਾ ਹੁੰਦਾ ਹੈ। ਇਸ ਲਈ ਅਸੀਂ join ਕਰਨਾ ਹੁੰਦਾ ਹੈ।
ਸਾਰੀਆਂ ਸ਼ੈਖਤੀਆਂ ਵਿੱਚ ਇੱਕ ਦੂਜੇ ਨੂੰ ਕੀਤੇ ਜਾਣ ਵਾਲੇ ਪ੍ਰਮੁੱਖ ਦੇ ਰੂਪ ਵਿੱਚ ਇੱਕ ਸ਼ਨਾਖਤ ਕੀਤੀ ਜਾ ਸਕਦੀ ਹੈ। ਮੁੱਖ ਪ੍ਰਮੁੱਖ (Primary Key) ਇੱਕ ਸਿਰਲੇਖ ਹੈ, ਜਿਸ ਵਿੱਚ ਹਰ ਸ਼ੈਖਤੀ ਦੇ ਹਰ ਸ਼ੈਖਤੀ ਦਾ ਮੁੱਲ ਵਿਲੱਖਣ ਹੁੰਦਾ ਹੈ। ਇਸ ਵਿੱਚ, ਹਰ ਮੁੱਖ ਪ੍ਰਮੁੱਖ ਦਾ ਮੁੱਲ ਵਿਲੱਖਣ ਹੁੰਦਾ ਹੈ। ਇਸ ਕਰਕੇ ਹਰ ਸ਼ੈਖਤੀ ਦੇ ਸਾਰੇ ਸ਼ੈਖਤੀਆਂ ਨੂੰ ਬਿਨਾ ਉਨ੍ਹਾਂ ਦੀ ਸਾਰੀਆਂ ਸ਼ੈਖਤੀਆਂ ਦੀ ਬਰਾਬਰੀ ਦੇ ਕਰਨ ਦੇ ਬਿਨਾ ਹੀ ਸ਼ੈਖਤੀਆਂ ਵਿੱਚ ਸਾਰੀਆਂ ਸ਼ੈਖਤੀਆਂ ਦੇ ਆਪਸੀ ਸਬੰਧ ਕਰ ਸਕਦੇ ਹਾਂ।
ਅਗਲਾ "Persons" ਸਾਰੀਆਂ ਸ਼ੈਖਤੀਆਂ ਵਿੱਚ ਵੇਖੋ:
Id_P | LastName | FirstName | ਅਡਰੈੱਸ | ਸਿਟੀ |
---|---|---|---|---|
1 | ਐਡਮਸ | ਜਾਨ | ਓਕਸਫੋਰਡ ਸਟ੍ਰੀਟ | ਲੰਡਨ |
2 | ਬੁਸ਼ | ਜੌਰਜ | ਫਿਫਟਹ ਏਵੇਨਿਊ | ਨਿਊਯਾਰਕ |
3 | ਕਾਰਟਰ | ਥਾਮਸ | ਚੰਗਾਨ ਸਟ੍ਰੀਟ | ਬੀਜਿੰਗ |
ਕਿਰਪਾ ਕਰਕੇ ਧਿਆਨ ਦਿਓ "Id_P" ਸਿਰਲੇਖ Persons ਸਾਰੀਆਂ ਸ਼ੈਖਤੀਆਂ ਵਿੱਚ ਮੁੱਖ ਪ੍ਰਮੁੱਖ ਹੈ। ਇਹ ਮਤਲਬ ਹੈ ਕਿ ਕੋਈ ਵੀ ਦੋ ਸ਼ੈਖਤੀਆਂ ਵਿੱਚ Id_P ਨਹੀਂ ਹੋ ਸਕਦੇ ਜੋ ਇੱਕ ਦੂਜੇ ਨਾਲ ਮਿਲਣ ਵਾਲੇ ਹੋਣ। ਚਾਹੇ ਦੋ ਵਿਅਕਤੀਆਂ ਦੇ ਨਾਮ ਪੂਰੀ ਤਰ੍ਹਾਂ ਮਿਲਣ, Id_P ਵੀ ਉਨ੍ਹਾਂ ਨੂੰ ਅਲੱਗ-ਅਲੱਗ ਕਰ ਦੇਵੇਗਾ。
ਅਗਲਾ "Orders" ਸਾਰੀਆਂ ਸ਼ੈਖਤੀਆਂ ਵਿੱਚ ਵੇਖੋ:
Id_O | OrderNo | Id_P |
---|---|---|
1 | 77895 | 3 |
2 | 44678 | 3 |
3 | 22456 | 1 |
4 | 24562 | 1 |
5 | 34764 | 65 |
ਕਿਰਪਾ ਕਰਕੇ ਧਿਆਨ ਦਿਓ "Id_O" ਸਿਰਲੇਖ ਇਸ਼ਤਰੀਕਤਾ ਪਰਿਭਾਸ਼ਿਤ ਹੈ Orders ਸਾਰੀਆਂ ਸ਼ੈਖਤੀਆਂ ਵਿੱਚ ਮੁੱਖ ਪ੍ਰਮੁੱਖ, ਸਿੰਗਲ, ਮੁੱਖ ਪ੍ਰਮੁੱਖ ਸਿਰਲੇਖ "Id_P" ਉਸ ਸ਼ੈਖਤੀਆਂ ਵਿੱਚ ਉਪਯੋਗ ਹੁੰਦਾ ਹੈ ਜਿਸ ਵਿੱਚ "Persons" ਸ਼ੈਖਤੀਆਂ ਵਿੱਚ ਵਿਅਕਤੀਆਂ ਦੀ ਸ਼ਨਾਖਤ ਕਰਨ ਲਈ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ, ਬਿਨਾ ਕਿ ਉਨ੍ਹਾਂ ਦੇ ਸਹੀ ਨਾਮ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ。
ਧਿਆਨ ਰੱਖੋ, "Id_P" ਸਿਰਲੇਖ ਉੱਪਰ ਦੇ ਦੋ ਤਾਲਮੇਲ ਨੂੰ ਜੋੜਦਾ ਹੈ।
ਦੋ ਤਾਲਮੇਲ ਦਾ ਉਪਯੋਗ
ਅਸੀਂ ਦੋ ਤੋਂ ਸਾਰੇ ਸਮਾਚਾਰ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ ਦੋ ਤੋਂ ਸਾਰੇ ਤਾਲਮੇਲ ਦੀ ਵਰਤੋਂ ਕਰ ਸਕਦੇ ਹਾਂ:
ਕਿਸ ਨੇ ਉਸ ਉਤਪਾਦ ਨੂੰ ਖਰੀਦਿਆ ਅਤੇ ਉਹ ਕੀ ਖਰੀਦਿਆ?
SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo FROM Persons, Orders WHERE Persons.Id_P = Orders.Id_P
ਨਤੀਜਾ ਸੈੱਟ:
LastName | FirstName | OrderNo |
---|---|---|
ਐਡਮਸ | ਜਾਨ | 22456 |
ਐਡਮਸ | ਜਾਨ | 24562 |
ਕਾਰਟਰ | ਥਾਮਸ | 77895 |
ਕਾਰਟਰ | ਥਾਮਸ | 44678 |
SQL JOIN - JOIN ਦੀ ਵਰਤੋਂ
ਉੱਪਰ ਦੇ ਤਰੀਕੇ ਤੋਂ ਇਲਾਵਾ, ਅਸੀਂ JOIN ਕੀਵਾਰਡ ਨੂੰ ਵੀ ਵਰਤ ਸਕਦੇ ਹਾਂ ਤਾਂ ਕਿ ਦੋ ਤੋਂ ਸਾਰੇ ਸਮਾਚਾਰ ਪ੍ਰਾਪਤ ਕੀਤੇ ਜਾ ਸਕਣ
ਜੇਕਰ ਅਸੀਂ ਸਾਰੇ ਲੋਕਾਂ ਦੇ ਆਰਡਰ ਲਿਖਣਾ ਚਾਹੁੰਦੇ ਹਾਂ, ਤਾਂ ਹੇਠ ਲਿਖੇ SELECT ਸਟੇਟਮੈਂਟ ਨੂੰ ਵਰਤ ਸਕਦੇ ਹਾਂ:
SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo FROM Persons INNER JOIN Orders ON Persons.Id_P = Orders.Id_P ORDER BY Persons.LastName
ਨਤੀਜਾ ਸੈੱਟ:
LastName | FirstName | OrderNo |
---|---|---|
ਐਡਮਸ | ਜਾਨ | 22456 |
ਐਡਮਸ | ਜਾਨ | 24562 |
ਕਾਰਟਰ | ਥਾਮਸ | 77895 |
ਕਾਰਟਰ | ਥਾਮਸ | 44678 |
ਵੱਖ-ਵੱਖ ਸਕਿੱਲ JOIN
ਉੱਪਰ ਦੇ ਉਦਾਹਰਣ ਵਿੱਚ ਵਰਤੇ ਗਏ INNER JOIN (ਅੰਦਰੂਨੀ ਜੋੜ) ਤੋਂ ਇਲਾਵਾ, ਅਸੀਂ ਹੋਰ ਕਈ ਪ੍ਰਕਾਰਾਂ ਦੇ JOIN ਵੀ ਵਰਤ ਸਕਦੇ ਹਾਂ。
ਇਥੇ ਤੁਸੀਂ ਵਰਤਣ ਵਾਲੇ JOIN ਪ੍ਰਕਾਰਾਂ ਅਤੇ ਉਨ੍ਹਾਂ ਦੇ ਅੰਤਰ ਵਿੱਚ ਫਰਕ ਦਿਖਾਇਆ ਗਿਆ ਹੈ。
- JOIN: ਕੋਈ ਵੀ ਮੈਚ ਮਿਲਦਾ ਹੈ ਤਾਂ ਹੀ ਰਾਸ਼ੀ ਵਾਪਸ ਆਉਂਦੀ ਹੈ
- LEFT JOIN: ਸੱਦੇ ਹੋਣ ਜਾਂ ਨਾ ਹੋਣ, ਸੱਦੇ ਵਾਲੇ ਸਾਰੇ ਪੱਧਰ ਵਾਪਸ ਆਉਂਦੇ ਹਨ
- RIGHT JOIN: ਸੱਦੇ ਹੋਣ ਜਾਂ ਨਾ ਹੋਣ, ਸੱਦੇ ਵਾਲੇ ਸਾਰੇ ਪੱਧਰ ਵਾਪਸ ਆਉਂਦੇ ਹਨ
- FULL JOIN: ਹਰ ਇੱਕ ਤੋਂ ਮੈਚ ਮਿਲਦਾ ਹੈ ਤਾਂ ਹੀ ਰਾਸ਼ੀ ਵਾਪਸ ਆਉਂਦੀ ਹੈ
- ਪਿਛਲਾ ਪੰਨਾ SQL Aliases
- ਅਗਲਾ ਪੰਨਾ SQL Inner Join