두 개의 테이블이 있습니다.동시에 뉴스 및 의견 받기
뉴스
news_id | header | text
news_comments
comment_id | comment | date | fk_news_id
두 방법 모두 가능한 경우 더 좋은 방법은 무엇입니까?
두 개의 테이블이 있습니다.동시에 뉴스 및 의견 받기
뉴스
news_id | header | text
news_comments
comment_id | comment | date | fk_news_id
두 방법 모두 가능한 경우 더 좋은 방법은 무엇입니까?
...
SELECT 'N' AS type, news_id, header, text, NULL AS date
FROM news
UNION
SELECT 'C' AS type, fk_news_id AS news_id, NULL AS header, comment AS text, date
FROM comments
ORDER BY news_id, type desc
이 당신에게 하나의 결과 집합을 제공 할 수 있지만,이 경우 다른 열 이름을 고려해야한다 결과에서 의견 데이터를 검색하십시오.
비슷한 수의 적은 수의 열에 대해서는 상당히 실용적입니다. 모든 컬럼이 이미 구분되어 있다는 것을 알기 때문에'UNION ALL'을 고려할 수도 있습니다 –
사용 INNER JOIN
SELECT a.*, b.*
FROM news a
INNER JOIN news_comments b
ON a.news_ID = b.fk_news_id
ORDER BY a.news_ID, b.comment_ID
더 조인에 대해 친절하게 아래 링크를 방문하여 더 많은 지식을 얻을 수 :
문 위에 만에이 news
을 반환을 적어도 하나의 덧글, 의견없이 모든 뉴스를 반환하려면을 사용하십시오.. 그게 당신이 생각하고있는 것입니다 만약 내가 정확히 모르는
SELECT a.*, b.*
FROM news a
LEFT JOIN news_comments b
ON a.news_ID = b.fk_news_id
ORDER BY a.news_ID, b.comment_ID
이렇게하면 각 댓글에 대한 뉴스 항목이 생성됩니다. 뉴스 항목에 3 개의 댓글이있는 경우 해당 항목은 결과에서 데이터베이스에서 3 번 꺼내집니다 –
불행히도 예, 어떻게 의견을 표시 하시겠습니까? 또는 응용 프로그램 수준에서 형식을 지정하지 않는 이유는 무엇입니까? –
나는 그것을 할 수있다. 그러나 정말로 뉴스가 풀린 후에 독자적으로 의견을 끌어내는 것보다 효율적인가? –
내부 결합을 사용하지 않는 이유는 무엇입니까? –
그런 식으로하면 각 의견에 대한 뉴스 항목이 생성됩니다. 뉴스 항목에 3 개의 의견이 있으면 해당 항목이 결과에서 데이터베이스에서 3 번 꺼내집니다 –
rdbms는 무엇입니까? –