[완료] MySQL에서 두 테이블 합쳐서 쿼리하기..

calvinpark의 이미지

안녕하세요

테이블 A.

+----+---------+-----------+
| id | content | timestamp |
+----+---------+-----------+
|  1 |  "A11"  |     3     |
+----+---------+-----------+
|  2 |  "A22"  |     5     |
+----+---------+-----------+
|  3 |  "A33"  |     7     |
+----+---------+-----------+

테이블 B.

+----+---------+-----------+-----+
| id | content | timestamp | idA |
+----+---------+-----------+-----+
|  1 |  "B22"  |     8     |  2  |
+----+---------+-----------+-----+

여기서 아래같은 데이터를 어떻게 해야 뽑아낼지 도통 대책이 안섭니다..

         +-------------------+------------------------------------------+-----------+
DISTINCT | A.id와 idA의 집합 | (A.timestamp와 B.timestamp의 집합) AS ts | A.content | ORDER BY ts DESC
         +-------------------+------------------------------------------+-----------+
         |        2          |                   8                      |   "A22"   |
         +-------------------+------------------------------------------+-----------+
         |        3          |                   7                      |   "A11"   |
         +-------------------+------------------------------------------+-----------+
         |        1          |                   3                      |   "A33"   |
         +-------------------+------------------------------------------+-----------+

다르게 설명하자면 두 테이블의 비슷한 필드를 병합시키고(A.id+idA, A.timestamp+B.timestamp), 병합된 필드로 정렬을 시킨 후(ORDER BY ts DESC), 그 순서로 다른 병합된 필드(A.id+idA)와 그에따른 내용(A.content)을 뽑아내는거죠.

하다하다 모르겠어서 여기가 이런 질문 하는덴지도 모르겠지만 일단 부탁드려봅니다.
아시는분 제발좀 도와주세요 ㅠㅠ

감사합니닷..

skyoon의 이미지

id와 idA를 조인시키면 끝.

timestamp가 설마 다르진 않겠죠? 같다면 하나만 써서 as로 리네임 해주면 되니 -_-;;

다르다면 유니온으로 id, timestamp, content를 각각 구해서 유니온 하고 그결과를 order by 하면 될것같네요.

근데 다르다면 결과가 좀 이상할 것같은데...;;;흠흠;;;

calvinpark의 이미지

해볼게요.. 감사합니다..

fox9의 이미지

select A.id, ifnull(A.timestamp, A.timestamp) as ts, a.content from A left join B on A.id = B.idA order by ts desc

마지막에 그려져있는 데이터와 똑같이 나옵니다.

calvinpark의 이미지

오오오 감사합니다

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.