我想从同一个表中检索两列,但如果未设置当前行中的某个列,则仅。只需要检索一列,就没有问题。一旦我需要另一个列,似乎我需要另一个子查询与另一个case子句,但这似乎真的无效。我之前从未使用过Joins,但我认为它可能在case子句中非常复杂?!
我认为它的美妙之处在于它实际上只在少数情况下执行了(如我所听到的)浪费的子查询。
在文档中,我发现使用ROW()
进行比较显然是可能的。是否有使用AS
检索列的等效项?
感谢您的任何提示,如果它只适用于Joins,请给我一个正确的方向,因为它们看起来有点复杂,如果我只是继续,那么它可能会变得一团糟。
鲁
SELECT id, bekannt, (
CASE WHEN bekannt = ''
THEN (
SELECT bekannt
FROM vokabeln AS v2
WHERE v2.id = vokabeln.hinweis
LIMIT 1
)
ELSE NULL
END
) AS lueckentext, (
CASE WHEN bekannt = ''
THEN (
SELECT hinweis
FROM vokabeln AS v2
WHERE v2.id = vokabeln.hinweis
LIMIT 1
)
ELSE NULL
END
) AS lthinweis
FROM vokabeln
WHERE nutzer = 'test'
答案 0 :(得分:1)
我将其编码为:
SELECT
v1.id, v1.bekannt, v2.bekannt AS lueckentext, v2.hinweis AS lthinweis
FROM
vokabeln AS v1
LEFT OUTER JOIN vokabeln AS v2
ON (v1.bekannt='' AND v2.id = v1.hinweis)
WHERE
v1.nutzer='test'