查询以从不同列获取数据

时间:2015-07-06 11:59:44

标签: mysql

我的查询出了问题,我似乎找不到合适的人来获取我想要的数据。我有以下表格需要从中获取数据:

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

1 个答案:

答案 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