【发布时间】:2015-08-03 19:08:22
【问题描述】:
我在 4 张桌子上工作,1 张主桌子和 3 张小桌子。主表称为“文档”,它引用了其他 3 个小表中的每一个的引用和 ID:重要性、性质、访问级别。
e.g.
(Table1) document
document_id | title | file_name | importance_id | nature_id | access_level_id
-----------------------------------------------------------------------------
1 | Food | food.docx | 1 | 1 | 1
(Table2) importance
importance_id | name
--------------------
1 | High
(Table3) nature
nature_id | name
----------------
1 | General
(Table4) nature
access_level_id | name
----------------------
1 | Public
我想做的是显示所有文档(使用 SELECT),并将其 ID 替换为相应的名称。像这样:
document_id | title | file_name | importance | nature | access_level
-----------------------------------------------------------------------------
1 | Food | food.docx | High | General | Public
我尝试使用此查询,但效果不佳:
SELECT `document_id`, `title`, `file_name`, `date_of_archiving`, `duration_of_life`, importance.name as importance, nature.name as nature, access_level.name as access_level
FROM document, importance, nature, access_level
WHERE importance.importance_id = document.document_id
AND nature.nature_id = document.nature_id
AND access_level.access_level_id = document.access_level_id;
那么我怎样才能做到这一点呢?
提前致谢:)
【问题讨论】:
-
看来你的问题在这里
importance.importance_id = document.document_id...这是JOIN语法优越的众多原因之一。 -
@Uueerdo 是的,WHERE 命令出于某种原因消除了一些行。问题是我不知道如何编写正确的 JOIN 语法,如果您能告诉我如何编写,我将不胜感激:)
-
这是 MySQL 还是 Microsoft SQL Server?你已经标记了两者。
标签: mysql sql sql-server sql-server-2008