2011-02-04 3 views
1

테이블 사용자는 id, name, fruit, veggies, meat 필드를 포함합니다.
테이블 FruitType에는 id, type, healthy, user 필드가 있습니다.MySQL - 하나의 필드 값을 사용하여 다른 필드를 이름으로 지정

1, 마빈, 애플, 당근, 돼지 고기
2, Zorlax, 블루 베리, 상추, 어린 양

있습니다 .. FruitType 테이블은 다음과 같이 보이지만 :


의 테이블 사용자는 다음과 같습니다 가정하자 내가 좋아하는 것이 무엇 2

그들을 가입하고에 따라 특정 필드에 사용자의 값을 검색 할 수있다

1, 과일, 예, 1
2, 채소, 그래, "VALUE"에서 ype "필드에 입력합니다. 예를 들어, 나는이 작업을 수행 할 수 있도록하고 싶습니다 :

SELECT User.'type' FROM User 

LEFT JOIN FruitType ft ON (ft.user = User.id) etc.. conditions and so on... 

는 기본적으로, 나는 '유형'부분은 FruitType 테이블의 '형식'필드의 값을 먹고 싶어. 본질적으로 필드 변수와 같은 것입니다.

나는 충분히 명확 해 졌으면 좋겠다. 진짜가 더욱 손상 할 수도 있지만 여기이 너무 혼란 보인다 경우, 내가 지금 일하고 있어요 실제 예입니다 :이 경우

IF (trigger_by_date IS NOT NULL, 
    date_add(books.trigger_by_date, INTERVAL trigger_by_date_add DAY), 
    date_add(trigger_step_created_at, INTERVAL trigger_by_step_add DAY)) 
    as deadline 

을 trigger_by_date는 변수입니다. null가 아닌 경우 필드 식별자로 값을 사용하기 만하면됩니다.

편집 : 더 "유형"열이 사용자에 없다 : 명확성을 위하여

. 예제 쿼리의 "type"은 FruitType 테이블의 실제 type 값으로 대체되어야합니다. 따라서 조건이 FruitType.type = fruit 결과를 얻은 경우 SELECT User.fruit에 대한 쿼리를 원합니다. 조건에 FruitType.type = veggies가 주어지면 SELECT User.veggies에 대한 쿼리를 원합니다. 나는 그것이 지금 더 분명하기를 바란다. 기본적으로 FruitType의 유형에 따라 필드를 선택합니다.

+0

이 문제를 해결하기 위해 전체 데이터베이스를 재구성했습니다. 결국, 훨씬 더 빠르고 약 4000 % 빨라졌습니다. 시도해 줘서 고마워. 미래의 독자가 해결책을 찾으면 저에게 직접 연락을 주저하지 마십시오. – Swader

답변

0

이 솔루션은 고급 하위 쿼리의 부부와 함께 쿼리를 다시 작성되었다 ON 사용자를 가입하는 것입니다.

0

설명이 매우 혼란 스럽습니다. 귀하가 게시 한 코드 조각에서 설명에 "User ..."유형의 'From User "라고 쓰면 사용자 테이블에 유형 필드가 없다고 말합니다. 그래도 내 생각 엔 FruitType 테이블에서 'type'필드를 가져 오는 중입니다.

아마 이것은 당신이 FruitType 피트에서
SELECT FruitType.type을 찾고 (ft.type = User.id)

+0

나는 그것을 미안하다는 것을 알았습니다. 내가 다시 시도하자, 원래 게시물을 수정합니다 – Swader

+0

귀하의 게시물을 단축을 통해 선명도 :) – ash

관련 문제