2017-06-22 108 views
-1

我嘗試從兩個表中選擇數據。
在第一個表中,我用默認語言存儲一些內容。
第一個表中包含的數據的第二個表存儲的翻譯。

我想檢索特定語言的行。

例如:
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中的數據。

+4

你想顯示哪種語言?提供樣本數據和期望的結果。 –

+0

使用不同的子句 –

+2

您可能正在尋找'group_concat()' – Rahul

回答

-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

你只需福爾戈添加的條件語言:

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

請低估這個人請告訴我爲什麼? –