doctrine left inner join /left outer join

RIGHT, INNER, OUTER, JOIN?


The difference is in the way tables are joined if there are no common records.

JOIN is same as INNER JOIN and means to only show records common to both tables. Whether the records are common is determined by the fields in join clause. For example:

FROM t1
JOIN t2 on t1.ID = t2.ID

means show only records where the same ID value exists in both tables.

LEFT JOIN is same as LEFT OUTER JOIN and means to show all records from left table (i.e. the one that precedes in SQL statement) regardless of the existance of matching records in the right table.

RIGHT JOIN is same as RIGHT OUTER JOIN and means opposite of LEFT JOIN, i.e. shows all records from the second (right) table and only matching records from first (left) table. 

也就是说:
left outer join:不管右边有没有,左边的都选上
right outer join : 不管左边的有没有,右边的都悬赏
join/inner join : 必须两遍都有

评论

热门博文