2014-11-05 3 views
2

여러 테이블의 여러 열을 결합하려고하지만 일부 데이터가 반복되는 것처럼 보입니다. 이 질문을 피하려면 어떻게해야합니까?MySQL이 여러 테이블의 여러 열을 결합합니다.

는 I는 다음의 테이블을 가지고

LEGE_ROM 
+----------+------------+-----+ 
| ansattnr | dag  | rom | 
+----------+------------+-----+ 
| L102  | 2012-09-23 | b01 | 
+----------+------------+-----+ 
| L100  | 2012-09-12 | k10 | 
+----------+------------+-----+ 
| L100  | 2013-03-05 | k10 | 
+----------+------------+-----+ 
| L100  | 2014-03-02 | k10 | 
+----------+------------+-----+ 
| L100  | 2014-10-15 | K10 | 
+----------+------------+-----+ 
| L100  | 2014-11-03 | k10 | 
+----------+------------+-----+ 
| L102  | 2012-09-12 | k11 | 
+----------+------------+-----+ 
| L100  | 2014-11-10 | k12 | 
+----------+------------+-----+ 
| L110  | 2012-09-13 | k12 | 
+----------+------------+-----+ 

ROM_BEHANDLING 
+-----+--------------+ 
| rom | behandling | 
+-----+--------------+ 
| b01 | kirurgisk | 
+-----+--------------+ 
| k10 | konsultasjon | 
+-----+--------------+ 
| k11 | konsultasjon | 
+-----+--------------+ 
| k12 | konsultasjon | 
+-----+--------------+ 

원하는 출력 테이블 (테이블이 편집 된)이다

+----------+-----+--------------+ 
| ansattnr | rom | behandling | 
+----------+-----+--------------+ 
| L100  | k10 | konsultasjon | 
+----------+-----+--------------+ 
| L102  | k11 | konsultasjon | 
+----------+-----+--------------+ 
| L110  | k12 | konsultasjon | 
+----------+-----+--------------+ 

원하는 출력 테이블을 달성하기 위해 사용되어야 조인. 나는 이것이 당신이 찾고있는 무엇을 생각

SELECT lr.ansattnr, lr.rom, rb.behandling 
FROM LEGE_ROM lr JOIN ROM_BEHANDLING rb 
WHERE rb.behandling='konsultasjon'; 
+1

근무. 'FROM LEGE_ROM lr JOIN ROM_BEHANDLING rb ON lr.rom = rb.rom' – Siyual

+0

원하는 출력은 무엇입니까? – hansmei

+1

@hansmei 그는 질문에 원하는 결과물을 이미 가지고 있습니다. – Siyual

답변

1

:

나는 다음과 같은 쿼리를 사용하려고 노력했다.

LEFT JOIN을 사용하므로 LEGE_ROM에 해당 행이 없더라도 ROM_BEHANDLING에서 행을 반환합니다.

SELECT lr.ansattnr, lr.rom, rb.behandling 
FROM ROM_BEHANDLING rb 
INNER JOIN LEGE_ROM lr on lr.rom = rb.rom 
GROUP BY lr.rom 
HAVING rb.behandling = 'konsultasjon'; 

예를 들어 당신은`Join`에 대한`On` 절을 필요 here

+0

L100의 정기 인스턴스를 제거 할 수있는 방법이 없으므로 L100 k10 konsultasjon이 테이블에 한 번만 표시됩니다. – slimmey

+0

@slimmey 예, GROUP BY 절을 추가하면됩니다. 나는 그 대답을 업데이트했다. – Donal

+0

이 업데이트로 내 phpMyAdmin (클라이언트 버전 5.1.73)에 다음과 같은 오류가 발생합니다 : "# 1064 - SQL 구문에 오류가 있습니다. 올바른 구문을 보려면 MySQL 서버 버전에 해당하는 설명서를 확인하십시오 'WHERE rb.behandling ='konsultasjon 'LIMIT 0, 30'5 번 줄 근처 " – slimmey