2015-01-25 4 views
-4

두 개의 테이블이 있고 주문 ID에서 고객의 이름이 필요한 경우.MySQL이 주문 ID에서 고객 이름 가져 오기

고객 :

ID  Name 
1  Jamal Wang 
2  Omar Jan 

주문 :

╔═══════╦══════════╦═══════╗ 
║ ID ║ CUSTOMER ║ VALUE ║ 
╠═══════╬══════════╬═══════╣ 
║ 34656 ║  1 ║ 20 ║ 
║ 37345 ║  2 ║ 25 ║ 
║ 38220 ║  1 ║ 15 ║ 
║ 39496 ║  1 ║ 38 ║ 
║ 41752 ║  1 ║  9 ║ 
║ 43734 ║  2 ║ 20 ║ 

나는 '주문'

SELECT Name FROM `Customer` 
INNER JOIN `Order` 
ON Customer.id = Order.customer. 
WHERE Customer.id=1 

에서 고객 ID가있을 때 고객의 이름을 좀하고 싶습니다하지만 같은 반환 고객에게 4 번 주문이 있습니다. "고객"을 기준으로 "주문"에 따라 customber를 반환하지 못하게하려면 어떻게해야합니까? 주문 ID에서 고객의 이름이 필요합니다. 도와주세요.

+1

그냥 두 번? 그것은 4 번 돌아와야합니다. – Crowcoder

+1

고객 ID가 있고 고객 이름이 필요할 때 왜 '주문'에 가입합니까? 주문 표에서 아무 것도 필요하지 않습니다. – rtruszk

+0

필터를 수정해야합니다 :'SELECT * FROM Customer INNER JOIN 주문 ON Customer.ID = Order.CUSTOMER WHERE Order.ID = 37345' 이것은 고객에게 1이 4이기 때문에 1 행을 – Ormoz

답변

0

고객 ID가 이미있는 경우 '주문'테이블에 가입하지 않아도됩니다. 간단한 선택 만 사용하십시오.

SELECT Name FROM `Customer` 
WHERE ID=1 

주문 ID를 기준으로 고객 이름을 얻으려면 join을 사용해야합니다.

-1

이미 언급했듯이이 특정 쿼리에는 주문 테이블이 전혀 필요하지 않습니다. 당신은 그럼 그냥 기존 쿼리에 DISTINCT 키워드를 추가 (이 귀하의 질문입니다)하면 기존 쿼리를 유지하고 이름 만 얻고 싶었다 경우

그러나 :

여기
SELECT DISTINCT name 
FROM customer 
INNER JOIN order ON customer.id = order.customer 
WHERE customer.id = 1; 

SQL Fiddle입니다 예.

+0

누구가 왜 이것을 downvote 것입니까? 나는 그들이 질문 한 질문에 대한 실무 답변을했다. – AdamMc331

관련 문제