STRAIGHT_JOIN इनर जॉइन जैसा है लेकिन टेबल ऑर्डर फोर्स करता है — ऑप्टिमाइज़र को बाएं टेबल पहले पढ़ने को कहता है।
सेटअप
CREATE TABLE ForeignTableDemo (Id INT, Name VARCHAR(100), FK INT);
CREATE TABLE PrimaryTableDemo (FK INT, Address VARCHAR(100), PRIMARY KEY(FK));
ALTER TABLE ForeignTableDemo ADD CONSTRAINT FKConst FOREIGN KEY (FK) REFERENCES PrimaryTableDemo(FK);
INSERT INTO PrimaryTableDemo VALUES (1,'US'), (2,'UK'), (3,'Unknown');
INSERT INTO ForeignTableDemo VALUES (1,'John',1), (2,'Bob',2);
STRAIGHT_JOIN क्वेरी
SELECT ForeignTableDemo.Id, ForeignTableDemo.Name, PrimaryTableDemo.Address
FROM ForeignTableDemo
STRAIGHT_JOIN PrimaryTableDemo
ON ForeignTableDemo.FK = PrimaryTableDemo.FK;
आउटपुट
+------+------+---------+
| Id | Name | Address |
+------+------+---------+
| 1 | John | US |
| 2 | Bob | UK |
+------+------+---------+
केवल मिलान वाली रो (इनर जॉइन जैसा)। उपयोग: जब ऑप्टिमाइज़र गलत ऑर्डर चुनता है।