从具有多个参数的两个表中选择数据
问题描述:
我尝试从两个表中选择数据。
在第一个表中,我用默认语言存储一些内容。
第一个表中包含的数据的第二个表存储的翻译。
我想检索特定语言的行。
例如:
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中的数据。
答
如果使用在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;
答
你只需福尔戈添加的条件语言:
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
子句。
+0
请低估这个人请告诉我为什么? –
你想显示哪种语言?提供样本数据和期望的结果。 –
使用不同的子句 –
您可能正在寻找'group_concat()' – Rahul