从具有多个参数的两个表中选择数据

时间:2017-06-22 13:03:22

标签: mysql sql

我尝试从两个表中选择数据。
在第一个表中,我以默认语言存储一些内容 第二个表存储的第一个表中包含的数据的翻译。

我想检索特定语言的行。

例如:
id,content,id_language,content_translation。

我,我做了这样的查询:

SELECT content_static.*,
content_static_t.*
FROM content_static
LEFT JOIN content_static_t on content_static_t.parent_id = content_static.id
WHERE content_static.id = 1;

它工作正常,但是当我有2种语言时,它会显示两行,每行代表一种语言。

我只想显示一行,只显示一种语言 我也想知道只能在SQL查询中从表content_static获取多个ID的数据。

http://sqlfiddle.com/#!9/fa076/2

我添加到查询添加条件(AND content_static_t.language_id =' 2')。当我将参数设置为' 2'没关系,但是当我把它设置为' 4'我没有数据。 在这种情况下,我只显示表content_static中的数据。

2 个答案:

答案 0 :(得分:-1)

如果你在WHERE语句中使用主键,那么它非常简单,只需使用TOP 1

SELECT TOP 1 content_static.*, content_static_t.*
FROM content_static
LEFT JOIN content_static_t on content_static_t.parent_id = content_static.id
WHERE content_static.id = 1;

答案 1 :(得分:-1)

您只需简单地添加语言条件:

SELECT cs.*, cst.*
FROM content_static cs
LEFT JOIN content_static_t cst on cst.parent_id = cs.id AND cst.language_id = 4
WHERE cs.id = 1;

如果您需要更多ID,请更改或删除WHERE子句。