2016-11-17 1 views
0

LIKE을 사용하는 검색어로 작업하고 있습니다. 그러나, 나는 약간 붙어있어, 주로 논리적이다.쿼리 INNER JOIN 및 SELECT

SELECT * 
FROM adressen 
WHERE CONCAT(adressen.ad_name, adressen.ad_vorname) LIKE 
      '%"+wndHauptfenster.textfield_suche.Text+"%' 

는 그러나, 나는 만 adressen.id에서 사용할 수있는 특정 ID에서 다른 테이블에서 몇 가지 정보를 얻을 필요가 : 지금이 쿼리가 있습니다. WHERE owner_id = adressen.id으로 fahrzeugen.kennzeichen을받을 수 있습니까?

내부 조인에 대해 생각했지만 거기에서 어떻게 구축 할 수 있는지 모르겠습니다. 이것이 가능한가, 아닌가?

내 질문을 해결하는 답변을 찾을 수 없습니다. 이러한 테이블 간에는 아무 관계도 없습니다. Adressen 테이블에는 열 ad_id, ad_name, ad_vorname 및 ad_adresse가 있습니다. 그가 fahrzeugen.kennzeichen을 얻을 필요가있는 테이블은 fahrzeugen이라고 불리며 ID, owner_id 및 kennzeichen을 포함합니다.

+0

힌트 :'JOIN'은'WHERE' 절이 아닌'FROM' 절로갑니다. –

+0

@Anquaser 테이블 사이에 테이블 스키마 및 관계를 제공하십시오. – Viki888

+0

하위 쿼리가 더 좋은 해결책일까요? – starko

답변

3

이렇게 하시겠습니까?

SELECT * 
FROM adressen AS A 
INNER JOIN fahrzeugen AS F ON F.owner_id = A.id 
WHERE CONCAT(A.ad_name, A.ad_vorname) LIKE 
      '%"+wndHauptfenster.textfield_suche.Text+"%' 
+0

네,하지만 그 사람이 10 대를 가지고있을 때마다 결과가 나옵니다. 검색 결과가 10 번 표시됩니다. 이것을 막을 수있는 방법이 있습니까? – Synthiatic

+0

달성하려는 목표에 따라 다르지만 SELECT TOP 1 * – Dom

+0

SELECT TOP 1 * 잘라낼 수는 없습니다. 슬프게도. 고객을 검색하는 Searchbox뿐 아니라 고객과 연결된 Numberplate에서도 사용됩니다. 그러나 고객이 20 대의 자동차를 가지고있을 때, 그것은 고객에게 20 번을 보여줍니다. – Synthiatic