나는 원하는 데이터를 거의 가지고있다. 그러나 필터링하는데 도움이 필요하다. (하단 그림)MySQL : 쿼리 결과 [그림]
아래 쿼리는 Member-id5라는 상태의 모든 레코드를 반환하지만 필자는이를 필터링해야합니다. 예 : 요법에 대한 간단한 쿼리를 작성한 경우 (exp_channel_titles) author_id 323 결과가 5 개가됩니다. 그 5 개의 결과 중 하나의 행은 status = 'Member-id5'
이고 다른 하나는 status = 'complete'
및 title = %Member%
입니다. 이는 결정 요소이며, 전체와 구성원이있는 행입니다. 그 행이 존재한다면 행 status = Member-id5
의 entry_id를 가져 와서 ecd (exp_channel_data)에서 데이터를 찾는 데 사용할 수 있습니다. 내가 어떻게 할 수 있는지에 대한 생각은? 사진
SELECT
ect.entry_id
, ect.author_id
, ect.title
, ect.status
, ecd.field_id_13
, ecd.field_id_14
, ecd.field_id_15
, ecd.field_id_25
, ecd.field_id_27
, ecd.field_id_28
, ecd.field_id_29
, ecd.field_id_30
, ecd.field_id_31
, ecd.field_id_32
, ecd.field_id_33
, ecd.field_id_34
, ecd.field_id_35
, exm.email
FROM exp_channel_titles as ect
LEFT JOIN exp_channel_data as ecd
ON ecd.entry_id = ect.entry_id
LEFT JOIN exp_members as exm
ON exm.member_id = ect.author_id
WHERE ect.status = 'Members-id5'
사진은 단지 author_id로 323의, exp_channel_titles에서 수행 간단한 쿼리이다
를 동봉. 그것의 다중 결과를 보여주는 방법과 entry_id 내 쿼리를 완료하기 위해 노력하고있어. entry_id 496은 내가 원했던 것이며, 1. % Member %가있는 행이 있고 그 행이 완료되었습니다. 그리고 496 행은 Members-id5의 상태를가집니다.
결과는 entry_id = 505hmm ... entry_id 496 행을 가져와야합니다. 그것은 entry_id를 참조로 505 행을 사용하여 그 행에 Member-id5 (496)가있는 행을 가져올 수 있는지 확인해야합니다. % Member %가있는 행이있는 경우 author_id에 대한 쿼리를 수행하고 그 다음에 Member-id5가있는 행에서 entry_id를 가져 오면 정상적으로 완료됩니다. – acctman
@acctman :이 경우, 위의 업데이트 된 대답에 표시된 것처럼'exp_channel_titles'을 쿼리에 다시 참여시켜야합니다. – eggyal