Latest web development tutorials

اتصال SQL (الانضمام)

SQL الانضمام للخط من جدولين أو أكثر معا.


SQL JOIN

SQL جملة JOIN إلى الصفوف من جدولين أو أكثر معا، بناء على الحقول المشتركة بين الجداول.

النوع الاكثر شيوعا من JOIN: SQL INNER JOIN (بسيطة JOIN). SQL INNER JOIN الانضمام عوائد كافة الصفوف التي تلبي الشروط من جداول متعددة.

قاعدة بيانات تجريبي

في هذا البرنامج التعليمي، سوف نستخدم نموذج قاعدة البيانات w3big.

وفيما يلي تحديد "مواقع" بيانات الجدول:

+----+--------------+---------------------------+-------+---------+
| id | name         | url                       | alexa | country |
+----+--------------+---------------------------+-------+---------+
| 1  | Google       | https://www.google.cm/    | 1     | USA     |
| 2  | 淘宝          | https://www.taobao.com/   | 13    | CN      |
| 3  | 本教程      | http://www.w3big.com/    | 4689  | CN      |
| 4  | 微博          | http://weibo.com/         | 20    | CN      |
| 5  | Facebook     | https://www.facebook.com/ | 3     | USA     |
| 7  | stackoverflow | http://stackoverflow.com/ |   0 | IND     |
+----+---------------+---------------------------+-------+---------+

هنا هي البيانات "access_log" الجدول الموقع سجل وصول:

mysql> SELECT * FROM access_log;
+-----+---------+-------+------------+
| aid | site_id | count | date       |
+-----+---------+-------+------------+
|   1 |       1 |    45 | 2016-05-10 |
|   2 |       3 |   100 | 2016-05-13 |
|   3 |       1 |   230 | 2016-05-14 |
|   4 |       2 |    10 | 2016-05-14 |
|   5 |       5 |   205 | 2016-05-14 |
|   6 |       4 |    13 | 2016-05-15 |
|   7 |       3 |   220 | 2016-05-15 |
|   8 |       5 |   545 | 2016-05-16 |
|   9 |       3 |   201 | 2016-05-17 |
+-----+---------+-------+------------+
9 rows in set (0.00 sec)

يرجى ملاحظة، "مواقع" الجدول "معرف" نقطة عمود "access_log" حقل في "site_id" الجدول. ما سبق جدولين "site_id" عمود الارتباط.

ثم، إذا كان لنا أن تشغيل العبارة SQL التالية (بما في ذلك INNER JOIN):

أمثلة

SELECT Websites.id، Websites.name، access_log.count، access_log.date
من المواقع الإلكترونية
INNER JOIN access_log
على Websites.id = access_log.site_id.

تنفيذ SQL أعلاه نتائج الإخراج هي كما يلي:



SQL مختلفة JOIN

قبل أن نستمر في شرح المثال، دعونا سرد SQL صلة مختلفة الأنواع التي يمكن استخدامها:

  • INNER JOIN: إذا كان الجدول يحتوي مباراة واحدة على الأقل، ثم يعود التوالي
  • LEFT JOIN: حتى إذا كان هناك أي تطابق في الجدول الصحيح، أيضا إرجاع كافة الصفوف من الجدول الأيسر
  • RIGHT JOIN: حتى لو لم يكن هناك جدول مباريات اليسار، يعود أيضا كافة الصفوف من الجدول الصحيح
  • التسجيل الكامل: واحد فقط من الجداول هناك مباراة، فإنها ترجع الصف