2012-06-06 20 views
0
SELECT * 

FROM 
    daaddress ad, 
    (daname nam LEFT OUTER JOIN daenttonam etn on nam.entity_id = etn.entity_id) 

我不明白是什么两个“表”由没有JOIN语句的逗号分隔应该做的。它是一个完整的?这条SQL语句的目的是什么?

回答

3

它输出daadress,LEFT JOIN,danamedaenttonam之间的笛卡儿积。

使用JOIN语法,它可以被改写为:

SELECT * 
FROM daaddress ad 
CROSS JOIN 
(
     daname nam 
LEFT OUTER JOIN 
     daenttonam etn 
ON  nam.entity_id = etn.entity_id 
) 

的括号可以省略:

SELECT * 
FROM daaddress ad 
CROSS JOIN 
     daname nam 
LEFT OUTER JOIN 
     daenttonam etn 
ON  nam.entity_id = etn.entity_id 

这很难说没有意识到模型细节的目的。