如果一个键值应该或不应该在表中,如何连接三个表?

时间:2016-12-02 05:40:20

标签: mysql sql

我正在尝试设计一个应用程序,我想在其中获取值 或使用查询条件, 我有三个表:每个表的文本,图像,音频,complaints_id列是相同的。

注意:记录插入表格文本是强制性的。

但是在图像和音频的情况下,它可能会也可能不会插入记录 (因为它取决于用户是否插入图像或音频)

表格:文字

complaint_id | text_note
------------------------
   34556     | Hello
   34557     | welcome  

table:image

complaint_id | photo_link
-----------------------------
   34556     | photo_link

表:音频

complaint_id | audio_link
----------------------------
   34557     | audio_link

我希望输出为

complaint_id | text_note | photo_link     | audio_link
------------- ----------- ---------------- --------------
34556        |  Hello    | photo_link     |
34557        |  welcome  |                | audio_link

我设计了一个查询,但它并没有为我做好准备!

SELECT
    *
FROM
    test t
JOIN image i ON (
    t.complaint_id = i.complaint_id
)
JOIN audio a ON (
    t.complaint_id = a.complaint_id
)
GROUP BY
    t.complaint_id

4 个答案:

答案 0 :(得分:0)

var result = JsonConvert.DeserializeObject<JObject>(json);

foreach(JObject obj in result["d"])
{
    Console.WriteLine(obj["Id"]);
}

答案 1 :(得分:0)

SELECT
    COALESCE (
        i.complaint_id,
        t.complaint_id,
        a.complaint_id
    ) complaint_id,
    t.text_note,
    i.photo_link,
    a.audio_link
FROM
    [ text ] t
FULL JOIN [ image ] i ON i.complaint_id = t.complaint_id
FULL JOIN audio_link a ON a.complaint_id = t.complaint_id

答案 2 :(得分:0)

我在oracle中编写了这个查询,它运行正常!

SELECT
    a.complaint_id,
    a.text_note,
    b.photo_link,
    c.audio_link
FROM
    text a
LEFT OUTER JOIN image b ON a.complaint_id = b.complaint_id
LEFT OUTER JOIN audio c ON a.complaint_id = c.complaint_id

竖起大拇指,如果它适合你。 感谢。

答案 3 :(得分:0)

    #datoid {
  width: 50%;
  height: 100px;
  float: left;
  background-color: inherit;
  overflow: scroll;
}

#stemplingerclass {
  width: 50%;
  height: 100px;
  float: right;
  background-color: inherit;
  overflow: scroll;
}