2011-10-04 3 views
1

과 내가 함께이 넣어 가지고 조인, 그것은 노력하고 있습니다 만이 할 수있는 더 좋은 방법이 있는지 모르겠어요?이 조인이 맞습니까? 내가 MySQL로 매우 새로운 오전

$q = $dbc -> prepare("SELECT l.layout, a.email 
         FROM layout AS l 
         JOIN accounts AS a ON (l.id = a.id) 
         WHERE email = ?"); 
$q -> execute(array($_POST['email'])); 

기본적으로 레이아웃라는 두 테이블 하나와 하나 개라는 계정이있다, 나는 레이아웃에서 레이아웃을 선택하려는 계정의 ID를 일치하는 이메일?

답변

1

더 나은 방법이있을 나타나지 않습니다. 너 괜찮아. 유일한 제안은 표 별칭에 AS 키워드를 사용하지 않는 것입니다. 그 위치에있는 AS는 MySQL의에서 유효하지만 단지 일반적으로 사용되지 않습니다. 모든 RDBMS에서 유효하지 않을 수 있으므로 사용 습관에 들지 않는 것이 가장 좋습니다.

SELECT l.layout, a.email 
FROM layout l JOIN accounts a ON (l.id = a.id) 
--  ^   ^
-- alias follows table name directly 
WHERE email = ? 
+0

좋아하는 이유는 무엇입니까? 코드를 읽는 것이 더 쉬울 때만 사용했습니다. – pv1

+0

@ pv1 내 추가 정보를 확인하십시오. 유효한 MySQL이지만 모든 RDBMS에있는 것은 아닙니다. –

+3

재미 : 나는, 그것은 미래의 키워드 추가에서 당신을 보호 (인포믹스) 때문에 DBMS에 내가 주로 작업에 AS를 넣어 권합니다. SQL 표준은 AS가 허용된다고 말하기 때문에, 나는 대부분의 DBMS가 그것을 허용 할 것으로 기대한다. (Informix는 사용 된 별명이 키워드가 아닐 경우 행복하게 작동하며, 이후 릴리스에서 키워드가 될 경우 작동했던 쿼리는 중단되기 쉽지만 그대로 유지됩니다.) –

관련 문제