[SQL] 저자에 의해 표현 엔진 SQL 쿼리 항목 목록
SQL저자에 의해 표현 엔진 SQL 쿼리 항목 목록
어떻게 다른 저자 각 항목에 채널에서 최신 3 개 항목을 주문할 것인가? (그들은 같은 저자에 의해 3 개 최신 항목 끝나게하지 않도록) - 나는 그것을 위해 SQL 쿼리를 사용할 필요가 있다고 생각?
{exp:channel:entries orderby="screen_name|date" channel="portfolios" limit="3" group_id="5" dynamic="no"}
<img src=" {thumbnail}" alt="{title}"/><br />
{title}<br />
{/exp:channel:entries}
사전에 감사합니다!
해결법
-
==============================
1.마크 - 여기에 내가 다른 속는 질문에 게시 된 응답의 재 게시입니다 :
마크 - 여기에 내가 다른 속는 질문에 게시 된 응답의 재 게시입니다 :
항목 태그 삽입을 통해 entry_id 매개 변수를 사용 : 당신이 당신의 사용자 정의 필드 구문 분석이 필요하기 때문에 여기에 가장 좋은 방법은, 먼저 서로 다른 저자의 최신 4 개 항목의 entry_ids을 찾은 다음 채널로 사람들을 전달하는 것입니다.
이 작업 (적절한 정수로 CHANNEL_ID를 교체해야)한다. 이와 코드의 전체 현재 덩어리를 교체합니다 :
{embed="embeds/_latest_per_member" entry_ids="{exp:query sql="SELECT entry_id, author_id FROM exp_channel_titles WHERE entry_date IN( SELECT MAX(entry_date) FROM exp_channel_titles WHERE status != 'closed' AND channel_id = 1 GROUP BY author_id ) ORDER BY entry_date DESC LIMIT 4" backspace="1"}{entry_id}|{/exp:query}"}
그런 다음 퍼가기 / _latest_per_member 템플릿은 다음과 같이 볼 수 있습니다 :
{exp:channel:entries channel="channel_name" entry_id="{embed:entry_ids}"} {author_id}<br /> <a href="{path=portfolios/gallery/{username}}"><img src="{thumbnail}"></a><br> <a href="{path=portfolios/gallery/{username}}">{title}</a><br /> {/exp:channel:entries}
이 코드는 당신에게 재귀 오류를 준 당신은 언급했다 - 당신이 삽입 내에 삽입에 다른 통화를 보류 한 것을 의미한다. 그렇게하지 마십시오.
-
==============================
2.WHERE IN (SELECT MAX (ENTRY_DATE) ...) 예를 들어 데이터베이스에 큰 타격을 받았다. 본질적으로 각 항목에 대해 하위 쿼리를 할 것으로 보인다. 제가 발견 대안 (유래)는 일부에서 단지 하나의 서브 쿼리를 사용
WHERE IN (SELECT MAX (ENTRY_DATE) ...) 예를 들어 데이터베이스에 큰 타격을 받았다. 본질적으로 각 항목에 대해 하위 쿼리를 할 것으로 보인다. 제가 발견 대안 (유래)는 일부에서 단지 하나의 서브 쿼리를 사용
인용 : 그룹 BY :-)하여 쿼리를 감싸서하여 ORDER BY는 그룹 작업을 수행합니다.
어쨌든 ...이 모든 저자와 마지막 게시 된 항목 제목을 가져옵니다. 당신은 또한 url_title을 원하는 경우에, 당신은 두 SELECT 문에 추가해야합니다. 나는 몇 가지 추가 옵션, 8 CHANNEL_ID 제한 마지막 4 개월 만 가져 오기 및 제한 68 CATEGORY_ID에 포함 시켰습니다.
SELECT author_id, screen_name, title, FROM_UNIXTIME(entry_date) AS m_date FROM ( SELECT t.author_id, t.title, m.screen_name, t.entry_date FROM exp_channel_titles AS t LEFT JOIN exp_members AS m ON t.author_id = m.member_id LEFT JOIN exp_category_posts AS c ON c.entry_id = t.entry_id WHERE t.entry_date > UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 4 MONTH)) AND t.channel_id = 8 AND c.cat_id = 68 ORDER BY t.entry_date DESC ) AS S GROUP BY S.author_id ORDER BY entry_date DESC # LIMIT 10
from https://stackoverflow.com/questions/7047022/expression-engine-sql-query-entries-list-by-authors by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 어떻게 2008 SQL 서버에서이 계산 열을 변경할 수 있습니다? (0) | 2020.07.16 |
---|---|
[SQL] 일정에 대한 MySQL의 질문 (0) | 2020.07.16 |
[SQL] 어떻게 내가 어디 절에 별칭을 사용합니까? [복제] (0) | 2020.07.15 |
[SQL] 외래 키 열은 여러 개의 기본 키에 매핑 (0) | 2020.07.15 |
[SQL] 중복 레코드를 삭제 (0) | 2020.07.15 |