2012-08-15 4 views
2

가능한 중복 가입 : 저는 약 1 년 전 웹 개발자로 시작
INNER JOIN ON vs WHERE clauseMySQL은 사용을

. 그 이후로 나는 PHP, mySQL, Javascript, jQuery 등을 살펴 보았다. 나는이 시간에 몇 가지 것을 배웠다. 그러나 SQL에 관해서는 나는 정말로 멍청한 행동입니다. 그냥 몇 가지 SELECT, INSERT, UPDATE 및 SUM 또는 UNIX_TIMESTAMP 등의 일부 함수를 사용합니다.

나는 JOIN 함수를 발견했으며 꽤 유용하게 보이지만 보이지 않습니다. JOIN 또는 일부 WHERE 절을 사용하여 데이터 사이의 "조인"테이블의 차이점.

나는 가입에 대해 this article (스페인어)를 읽었습니다. 나는 그것의 유용성을 실제로 볼 수 없다.

이 데이터 집합을 가정 : 예를 들어

id nombre  id nombre 
-- ----   -- ---- 
1 Pirata  1 Rutabaga 
2 Mico   2 Pirata 
3 Ninja  3 Darth Vader 
4 Spaghetti 4 Ninja 

않을까요이 쿼리 : SELECT * FROM TablaA INNER JOIN TablaB ON TablaA.name = TablaB.nameSELECT * FROM TablaA, TablaB WHERE TablaA.name = TablaB.name과 같은 결과를?

+2

방금 ​​내부 조인에 대한 구문 바로 가기를 발견했습니다. 조인에는 다른 유형이 있습니다. –

+0

http://stackoverflow.com/questions/894490/sql-left-join-vs-multiple-tables-on-from-line – dugas

+0

감사! 이제부터는 JOIN을 사용하기 시작할 것이고 동의합니다. 이전 WHERE 절과 함께 읽을 수없는 큰 쿼리가 있습니다. – davidaam

답변

4

예, 결과는 동일하지만 SELECT * FROM TablaA, TablaB WHERE TablaA.name = TablaB.name은 SQL-92 표준을 충족하지 않는 이전 조인 방법입니다. 쿼리가 매우 복잡해지기 시작하면 읽는 것이 훨씬 더 어렵습니다. 명시 적으로 선언 된 INNER JOIN 형식을 사용하는 것이 좋습니다.

+0

감사합니다! 나는 그것을 더 잘 이해하기 위해 SQL JOIN을 연구 할 것이다. – davidaam

2

예제는 동일한 결과를 가져 오지만 다른 유형의 조인이 있다는 것을 알게됩니다. LEFT JOIN이 내가 일반적으로 사용하는 유일한 조인입니다. 조인의 개념은 WHERE를 사용하여 결과를 필터링하는 개념과 별개입니다 절. 때로는 WHERE 절이 모든 조인 조건이 혼합되지 않으면 충분히 복잡해질 수 있습니다. WHERE 절이 아닌 JOIN 절에서 SQL을 쉽게 관리하고 조인 할 수 있습니다.