2012-10-01 3 views
0

"나는 제대로 작동 할 수 있습니다."라는 mysql에 대한 지식을 향상시키기 위해 노력하고 있습니다. 지금 조인 작업을하고 있으며 다음 작업을 수행하는 가장 좋은 방법을 궁금해하고 있습니다.올바른 방법으로 MYSQL 테이블에 가입하십시오.

"항목"과 "범주"테이블이 2 개 있습니다. "items"테이블 안에는 "categories"테이블의 기본 키 cid에 연결된 category라는 필드가 있습니다. 이 일을하는 가장 좋은 방법은 무엇입니까? 이것은 내가 항상 그것을 한 적이 어떻게하지만 난 어떤 방법으로 그것이 최선의 방법이 아니다 느낄

SELECT C.something, C.soemthing 2 FROM categories C, items I WHERE C.cid=I.category AND C.categoryName='New' 
+0

. 작동하지 않는다는 것은 무엇을 의미합니까? 나는 처음 프로그래밍을 시작했을 때 그것을 배운 것이 가장 좋은 방법이 아니라는 것을 알고 있습니다. 그래서 지금은 나쁜 습관입니다. – Dave

답변

4

귀하의 쿼리가 이미 정확하지만 ANSI SQL-92 형식을

SELECT C.something, C.soemthing2 
FROM categories C INNER JOIN items I 
       on C.cid=I.category 
WHERE C.categoryName='New' 

질문을 사용하는 것이 좋습니다 것입니다, 너는 무엇을 성취하려고 하는가?

+0

나는 가장 최적화 된 쿼리를 작성하려고합니다. 나는 그것을 쓰고있는 것처럼 느껴진다. 너무 추상적이어서 그것을하는 "최선의 방법"이된다. – Dave

+0

아니, 잘하고있다. 하지만 이전 조인 구문을 사용하고 있습니다. –

+0

좋아, 나는 단지 확인하고 싶었다. 고마워요. – Dave

0

조회에서 올바른 결과 집합을 반환하지만 다음 더 읽기 : 그것은 내 코드에서 잘 작동하고 나는 지금 년 동안 테이블을 조인의 방법을 사용하고

SELECT C.something, C.soemthing 2 
FROM categories C 
INNER JOIN items I ON C.cid = I.category 
WHERE C.categoryName='New'; 
+0

쿼리는 문제가 없지만 오해의 소지가있는 설명은 -1입니다. 이전 조인 구문은 동일한 쿼리 계획으로 이어 지므로 비효율적이지는 않습니다. 오류가 발생하기 쉽고 읽기 쉽지 않습니다. –

+0

전체 데카르트 곱을 반환하고 OP의 방법을 사용하여 필터링 한 것 같습니다. 자습서를 가져 주셔서 감사합니다.이를 반영하기 위해 내 게시물을 편집했습니다. –

관련 문제