2014-11-06 3 views
0

WordPress 사용자가 바텐더 (WordPress 게시물)에 투표 한 곳에서 투표 경연 대회를 운영했습니다.SQL 쿼리 도움말 : 다른 두 테이블의 데이터로 테이블 값 업데이트

내가 사용한 투표 플러그인은 각 투표마다 1 행을 포함하는 투표 테이블 ('wordpress_votes')을 만들었습니다. 각 행에는 사용자 ID ('user_id')와 바텐더 ID ('post_id')가 모두 들어 있습니다.

목표 : 바텐더의 주소를 기반으로 사용자의 이메일 주소를 제공하는 결과를 만들려고합니다.

  1. 이메일 주소는 'USER_ID'와 'USER_EMAIL'를 모두 포함 행이있는 테이블 wordpress_users에서 찾을 수 있습니다
  2. 바텐더 주소는 주소와 행을 포함 wordpress_postmeta라는 테이블에서 찾을 수 있습니다 'post_id'도 포함하는 행의 사용자 입력란 'employer_address'

누구나이 세 가지 테이블에서 결과를 가져올 수있는 적절한 MSSQL 쿼리를 제안 할 수 있습니까?

답변

0

이것은 당신에게 나는이 하나와 사투를 벌인거야 결과

select wv.user_id,wu.user_email,wv.post_id,wp.employer_address from wordpress_votes wv 
inner join wordpress_users wu on wu.user_id=wv.user_id 
inner join wordpress_postmeta wp on wp.post_id=wv.post_id 
+0

을 줄 것이다. _employer_address_는 _wordpress_votes_ 테이블 내의 열이 아닙니다. 그것은 실제로 _meta_key_이고, 특정 _post_type_ (바텐더)에 대해 _meta_value_와 연관된 것을 찾고 있습니다. 또한 - 내가 SQL을 처음 사용하기 때문에 위의 구문이 속기 때문에'[] '를 추가하고 전체 테이블 이름을 사용해야합니까? 감사! –

0
select 
    u.user_email, 
    pm.employer_address 
from wordpress_votes v 
join wordpress_users u on u.user_id = v.user_id 
join wordpress_postmeta pm on pm.post_id = v.post_id 
+1

이 코드 단편은 질문을 해결할 수 있지만 [설명 포함] (http://meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers)은 게시물의 품질을 향상시키는 데 정말로 도움이됩니다. 앞으로 독자의 질문에 답하고 있으며 코드 제안의 이유를 알지 못할 수도 있습니다. – gunr2171

+0

안녕 롭, 고마워! 그러나 employer_address는 열 머리가 아니며 실제로는 postmeta 테이블 내의 이름 - 값 쌍 (meta_key, meta_value)입니다. 이 구문을 고려하여 위의 구문을 수정할 수 있습니까? 나는 다음을 시도했지만 작동하지 않았다 :에 wordpress_postmeta의 오후에 가입 wordpress_wti_like_post의 V 에서 wordpress_postmeta WHERE meta_key = 'employer_address'에서 post_id를, meta_value 을 u.user_email SELECT u.user_id = v.user_id 에 wordpress_users U 가입 pm.post_id = v.post_id –

관련 문제