我正在尝试设计一个应用程序,我想在其中获取值 或者使用查询条件, 我有三个表:文本、图像、音频,每个表中的complaint_id列都是相同的。
注意:表格文本中插入的记录是强制性的。
但对于图像和音频,它可能会也可能不会插入记录 (因为这取决于用户是否插入图像或音频)
表格:文本
complaint_id | text_note
------------------------
34556 | Hello
34557 | welcome
表:图像
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
最佳答案
SELECT
complaint_id,
IFNULL(text_note, '') text_note,
IFNULL(photo_link, '') photo_link,
IFNULL(audio_link, '') audio_link
FROM
text
LEFT OUTER JOIN image ON text.complaint_id = image.complaint_id
LEFT OUTER JOIN audio ON text.complaint_id = audio.complaint_id
关于mysql - 如果一个键值应该或不应该在一个表中,如何连接三个表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40925513/