如何选择表格中的值以及它是否不存在其他值?

时间:2014-04-04 21:27:21

标签: php mysql sql

我试图找到解决方案,但大多数其他答案都不起作用。

我有一个页面来翻译我的网站,mySQL所有的文本都是回声&#(在溢出中:当然是自动的,所以整个页面都没有填充文本),我想要它回应所有已翻译成翻译语言的文本。来自没有翻译的网站的所有文本都应该有"英语"作为选择的语言来展示。我尝试了各种各样的东西,但是我无法让它发挥作用。

$sql=mysql_query("SELECT * FROM `website` WHERE language='$_SESSION[translate]' GROUP BY name");

是我目前拥有的查询。这将返回翻译语言中的所有翻译值,这很好,但它不会显示所有名称' - 值,它应显示所有其他名称' - 英文值,因为他们还没有翻译。但是我不知道怎么做,JOINS似乎只能用于多个表。

1 个答案:

答案 0 :(得分:0)

您可以自己加入表格:

SELECT w1.name, IFNULL(w2.value, w1.value) AS value
FROM website AS w1
LEFT JOIN website AS w2 ON w1.name = w2.name AND w2.language = '$_SESSION[translate]'
WHERE w1.language = 'english'

如果没有翻译,外部联接会产生NULL值,IFNULL则会将英文版本作为默认值。