问候并感谢您阅读我的问题。
首先,下图描述了我正在创建的数据库的一部分。我的目标(除非有更好的方法可以做到这一点)是支持多种语言的字段,这些字段通常在单独的表中称为“schedule_name”和“schedule_description”。PS - 我知道此图中的列类型标记得很糟糕。
如您所见,boat, Cruise 和 schedule 都有一个 languageid 作为外键。如果我想提取游轮和船的时间表记录,请问我该怎么做?
我的表加入没问题,列别名已排序,但想在每个别名中获取正确的详细信息。为了清楚起见
时间表有它自己的 language_language_id 参考来选择使用 language_id = 1 language_name_en 是 - 星期一早上
Cruise 有自己的 language_language_id 参考,可以使用 language_id = 2 language_name_en 进行选择 - Sunny Haze
船有它自己的 language_language_id 参考来挑选使用 language_id = 3 language_name_en is - Blue Dolphin
回答对此问题的评论;en 是英文,zhs 是简体中文,zht 是繁体中文。这些是该系统支持动态数据的语言。我认为这样布置表格会很方便,这样可以有一个只负责处理语言的用户类型;无需处理调度表。
到目前为止,我相信我的查询将按如下方式获得示例记录,如下所示:
SELECT
schedule_id,
s.language_name_en as schedule_name_en,
l.language_name_zhs as schedule_name_zhs,
l.language_name_zht as schedule_name_zht,
schedulesafename,
schedule_expected_arrival,
schedule_expected_departure,
cruise_id,
c.language_name_en as cruise_name_en,
c.language_name_zhs as cruise_name_zhs,
c.language_name_zht as cruise_name_zht
FROM
schedule as s
INNER JOIN
language as l
ON s.language_language_id = l.language_id
INNER JOIN
cruise as c
ON c.language_language_id = l.language_id
Where
schedule_id = 1;
这是我希望使用列出的查询返回的一些示例数据。
scheduleid - 1
schedule_name_en - monday morning
schedule_name_zhs - 星期一的早晨
schedule_name_zht - 星期一的早晨
schedule_safename - pwupglfkpmwcbkgzhmzxrqfeqzlhvaed
schedule_expected_arrival - 1353138308
schedule_expected_departure - 1353139218
cruise_id - 1
cruise_name_en - Sunny Haze
cruise_name_zhs - 彩霞
cruise_name_zht - 彩霞
cruise_safename - bbhdrunzdmftyvhprefvogysgfrtnkgm
这让您了解我希望如何从数据库中获取数据。我的主要问题是如何在同一个查询中删除语言记录。感谢您阅读我的问题。