Yabancı anahtar kullanarak başka bir tablodan veri seçme

İki tablom var A & B.

Tablo A

id | name | num

Tablo B

id | date | roll

B tablosundaki id, A tablosundaki id ile ilişkili bir yabancı anahtardır.

Id'nin verildiği B tablosunun içeriğini almak istiyorum ve ayrıca bu verilerle birlikte A tablosundan id'si verilen isme ihtiyacım var.

Google'da LEFT, JOIN gibi bazı garip anahtar kelimeler buldum ama anlayamadım.

Tek bir sorguda B tablosundan tarih ve rulo ve A tablosundan ad almam gerekiyor. (id bir yabancı anahtardır)

Kullandığım eklenti ne yazık ki virgüllerle ayrılmış birden fazla sorguya izin vermiyor, bu yüzden her iki SELECTi de tek bir sorguda yapmam gerekiyor.

Tabloların birleştirilmesi, ilişkisel veritabanlarının temel bir ilkesidir. Sizin durumunuzda, A ve B id sütunu ile ilişkilidir, bu da buna benzer bir sözdizimi kullanabileceğiniz anlamına gelir:

SELECT a.id, a.name, a.num, b.date, b.roll
FROM a
INNER JOIN b ON a.id=b.id;

INNER JOIN, yalnızca A ve B'de eşleşen kayıtların olduğu satırları göreceğiniz anlamına gelir. A'daki tüm satırları ve B'deki eşleşen kayıtları istiyorsanız, INNER JOIN'iLEFT JOIN' olarak değiştirebilirsiniz. Tersine, B'deki tüm kayıtları ve yalnızca A'daki eşleşenleri istiyorsanız, RIGHT JOIN kullanın. Son olarak, eşleşen veya eşleşmeyen her iki tablodaki her şeye ihtiyacınız varsa, FULL JOIN kullanabilirsiniz.

Yorumlar (0)

İstediğiniz sonucu elde etmek için bu tabloları birleştirmeniz gerekir.

SELECT b.*, a.name FROM tableB AS b INNER JOIN tableA as A ON (b.id=a.id);

Bu sorgu, Tablo B'deki her şeyi ve Tablo B'deki kimliğin Tablo A'daki kimlikle aynı olduğu Tablo A'dan name öğesini döndürür.

Yorumlar (0)

Yabancı anahtarla ilişkili iki tablodan sonuç almak için tabloları birleştirmeniz gerekir.

Sonucu istediğiniz gibi aşağıdaki sorguyu bulun:

SELECT name, date, roll
FROM A
INNER JOIN B
ON A.id = B.id;
Yorumlar (0)