2016-08-20 2 views
0

의 쿼리에서 중복 레코드를 제거 나는 다음과 같은 두 테이블이 있습니다이 개 테이블

표 1 : 송장을
invoiceID CLIENTNAME
| 1                         | 토니
| 2                         | 루드비히
| 3                         | 랄프

표 2 : invoice_items
invoiceID itemDescription
| 1                         | 평면 모니터 LED 등 ...
| 1                         | HP 프린터 잉크젯 등 ...
| 2                         | 노트북 wahtever 등 ...

나는 "송장"테이블에서 송장을 쿼리하려고하지만 사용자가 항목 설명을 검색 할 수 있습니다.

나는

$query = "SELECT i.*, ii.invoiceID, ii.itemDescription from invoices i, invoice_items ii, WHERE ii.itemDescription like "%'.$_GET["s"].'%" AND i.invoiceID = ii.invoiceID"; 

를 작성하지만 중복이 것입니다 결과가있다. 어떤 아이디어? 당신은 당신이 별개의 호출 할 수 있습니다 ..하지만이 경우에 당신이 (당신이 당신의 결과에 descriptio 필요하지 않은 경우) 당신이

$query = "SELECT distinct i.col1, i.col2, i.col3, ii.invoiceID, ii.itemDescription 
     from invoices i, invoice_items ii, 
     WHERE ii.itemDescription like "%'.$_GET["s"].'%" 
     AND i.invoiceID = ii.invoiceID"; 

yyou이 방법을 별개의 obtaion 수 explicitally 필요한 열을 선택해야 할 경우

답변

1

itemDescription이 고유하지 않으면

$query = "SELECT distinct i.col1, i.col2, i.col3 
     from invoices i, invoice_items ii, 
     WHERE ii.itemDescription like "%'.$_GET["s"].'%" 
     AND i.invoiceID = ii.invoiceID"; 
+0

이것은 당신이 중복 행을 don'have ..하지만 일부 열이 같은 .. – scaisEdge

+0

이 @LudwigArcache 작동 DISTINCT하지만 대답은 필요가 업데이트되어야하는 다음 .. .. 단지가 될 수 ii.itemDescription을 SELECT 목록에서 제거합니다. 남은 경우 DISTINCT는 invoice_item 테이블의 고유 한 인보이스 열을 제공하지 않습니다 – Matt

+0

@ LudwigArcache 정확한 예상 결과를 추가하여 질문을 업데이트 해보십시오. – scaisEdge