저는 PHP와 MySQL로 소셜 미디어 뉴스 집계 웹 앱을 구축하고 있습니다. 다양한 URL (열 URL)을 특정 경향 (열 trend_id)에 매핑해야합니다. 여기 내 더미 데이터 구조입니다 :여러 쿼리 행을 하나로 결합하기
I (예 : 12) 특정 trend_id의 URL을 가져 오는 쿼리를 작성해야합니다. 이것은 간단하다 :
선택
url
trend_id
= '12'이
이제 몇 가지 경향은 특정 부모 추세 관련된 url_table
FROM. (url_table
곳에서 trend_id
= '12'또는 trend_id
= '16'
SELECT '12'
parent_trend_id
로,url
예를 들어 12, 16 및 45 부모 trend_id 관련된 trend_ids (12) 그래서 여기 내 쿼리 01parent_trend_id
같은SELECT '345'
url
:trend_id
OR = '45')여기에 유사한 쿼리의 다른 예이다WHERE (
trend_id
= '345'trend_id
OR = '457'trend_id
OR = '16')
문제 등 여러 상위있다이다 - 흐름 사이에 자식 관계. 지금은 PHP 내에서 for 루프를 실행하고 여러 쿼리를 실행합니다. 또한 내 앱의 특성상 부모 추세는이 표의 일부가 될 수 없습니다. 같은 쿼리를 여러 번 수행하는 단일 쿼리를 사용할 수 있습니까?
편집 :
나는
아이에게
관계를 정의하는 별도의 테이블이있다. 이것은 ID, trend_id (parent) 및 related_trend_id (child)가있는 간단한 3 열의 테이블입니다. 그러나 하나의 related_trend_id (하위)는 여러 개의 trend_ids (상위)를 가질 수 있습니다.
SELECT r.trend_id as parent_trend_id,url
FROM url_table
Join relations r on r.related_trend_id = childid
WHERE r.trend_id = 12
또는 나를 위해 예상대로
SELECT r.trend_id as parent_trend_id,url
FROM url_table
Join relations r on r.related_trend_id = childid
작품 정확히 그들 모두를 얻을 : 당신은 특정 쿼리가 지금 것
이 테이블을 사용하기 위해 쿼리를 업데이트했습니다 ... 정상적으로 작동합니다. – Hogan