我的查询出了问题,我似乎找不到合适的人来获取我想要的数据。我有以下表格需要从中获取数据:
app_exhibition
- id
- name
- form_id
app_forms
- id
- name
app_languages
- id
- name
- code
app_link_lang
- id
- form_id
- lang_id
我想选择展览的名称(app_exhibition
)表格的ID和名称(app_forms
)语言的名称(app_languages
),我知道哪个一个选择(语言明智)因为它在app_link_lang
表中链接。
现在我得到了以下查询,但那(显然)不起作用..:
select f.form_id, f.name, b.name as beursnaam, l.name as languagename
FROM app_forms f, app_lang_link ll
WHERE f.id=1
LEFT JOIN app_beurzen b ON (b.form_id = f.id)
LEFT JOIN app_languages l ON ll.form_id = f.id
答案 0 :(得分:1)
这应该做的工作:
SELECT e.name ename, f.id fid, f.name fname, l.name lname
FROM app_exhibition e
INNER JOIN app_forms f ON f.id=e.form_id
INNER JOIN app_link_lang al ON al.form_id=f.id
INNER JOIN app_languages l ON l.id=al.lang_id
您忘记在提供app_link_lang
链接的链接表m-to-n
中编织。结果现在可以包含每个展览的几行,具体取决于app_link_lang
中与其相关联的语言。
修改强>
我扩展了你的小提琴(填写了一些数据)并且它有效,请看这里:http://sqlfiddle.com/#!9/a86be/1