这是一个难以理解如何正确询问的问题,但这里有......
这是我的表的基本格式(实际表有很多行和多个lang_id):
----------------------------------
| id | lang_id | key | text |
----------------------------------
| 1 | 1 | k_foo | foo |
----------------------------------
| 2 | 1 | k_bar | bar |
----------------------------------
| 3 | 2 | k_bar | le bar |
----------------------------------
| 4 | 2 | k_foo | le foo |
----------------------------------
我想要做的是返回WHERE lang_id = 2
行,但按WHERE lang_id = 1
的结果排序,如下所示:
----------------------------------
| id | lang_id | key | text |
----------------------------------
| 4 | 2 | k_foo | le foo |
----------------------------------
| 3 | 2 | k_bar | le bar |
----------------------------------
我正在疯狂地试图解决这个问题。我已搜索了几个小时,但不断获得多列排序的结果,而不是单列的多个结果。
我已尝试加入它,联合它和子查询,但我要么返回数百行,要么就是没有!
答案 0 :(得分:0)
SELECT
l2.id,
l2.lang_id,
l2.key,
l2.text
FROM
language l1
JOIN
language l2
ON l2.key = l1.key
WHERE
l1.lang_id = 1
AND
l2.lang_id = 2
ORDER BY
l1.id -- Replace with whatever column you actually want to order by.