Cross Join
Genelde aynı tabloyu kartezyen çarpıma tabi tutmak için kullanılır. A tablosunda şu satırlar olsun.
Tablodaki en büyük x değerine sahip satırı buluruz. Bu cümleden id ve revision değerleri gelir. Ancak geri kalan sütunları teker teker yazmak istemeyiz. Tabloyu kendi içinde birleştirerek geriye kalan sütunları da almak için şöyle yaparız.
On kelimesinden sonra gelen = kontrolü istenilen sırada yazılabilir. Şöyle yaparız
Genelde aynı tabloyu kartezyen çarpıma tabi tutmak için kullanılır. A tablosunda şu satırlar olsun.
'ta1'
'ta2'
'ta3'
'ta4'
Şöyle yaparız.SELECT
A.name,
B.name FROM ta A CROSS JOIN ta B
WHERE A.id <> B.id
Şu çıktıyı elde ederiz.| ta1 | ta2 |
| ta1 | ta3 |
| ta1 | ta4 |
| ta2 | ta1 |
| ta2 | ta3 |
| ta2 | ta4 |
| ta3 | ta1 |
| ta3 | ta2 |
| ta3 | ta4 |
| ta4 | ta1 |
| ta4 | ta2 |
| ta4 | ta3 |
insert into C(myString_A, myString_B)
select a.myString_A, b.myString_B
from Table_A a cross join
Table_B b;
Inner JoinTablodaki en büyük x değerine sahip satırı buluruz. Bu cümleden id ve revision değerleri gelir. Ancak geri kalan sütunları teker teker yazmak istemeyiz. Tabloyu kendi içinde birleştirerek geriye kalan sütunları da almak için şöyle yaparız.
SELECT t.*
FROM your_table t
INNER JOIN
(SELECT id, MAX(revision) revision FROM your_table GROUP BY id
) t1
ON t.id = t1.id
AND t.revision = t1.revision;
Left Join
On kelimesinden sonra gelen = kontrolü istenilen sırada yazılabilir. Şöyle yaparız
select fields
from tableA
LEFT JOIN tableB
ON tableA.key = tableB.key
veya şöyle yaparız.select fields
from tableA
LEFT JOIN tableB
ON tableA.key = tableB.key
Hiç yorum yok:
Yorum Gönder