0

我在 SQLITE 数据库中有一个与此类似的表结构,LANID 是另一个表的 FK:

ID   LANID    TEXT
-------------------------
1     101     Issue1
1     102     Comment1 for Issue1 
2     101     Issue2 
2     102     Comment1 for Issue2
3     101     Issue3
3     102     Comment1 for Issue3
1     102     Comment2 for Issue1
...

我正在尝试使用以下查询从共享相同 ID 的 TEXT 字段中获取值:

SELECT t.TEXT as issue, s.TEXT as comment
FROM MyTable as t, MyTable as s 
WHERE t.LANID = '101' and s.LANID = '102' AND t.ID = s.ID 
      AND t.TEXT like "%some text in Issue1%"

它几乎可以工作,但有一个问题:它不能在需要时“复制”值。换句话说,我不能像这样显示同一问题的第二条评论:

issue               comment
---------------------------------
Issue1        Comment1 for Issue1
Issue1        Comment2 for Issue1 
...

提前感谢您的任何提示。

4

3 回答 3

1

我会使用显式 self ,而不是原始查询中使用join的隐式:join

SELECT
  mt1.Text AS Issues,
  mt2.Text AS Comment
FROM MyTable mt1
JOIN Mytable mt2
  ON mt1.ID = mt2.ID
  AND mt1.LANID = 101
  AND mt2.LANID = 102

使用 Sql Fiddle 查看它的实际效果

于 2013-03-25T21:38:31.760 回答
0

我认为问题实际上在于您如何设置数据库。注释应该在一个单独的表中,引用具有外键的问题。如果没有完善的数据库设计,您将一直在为某种事情苦苦挣扎。

于 2013-03-25T21:36:21.833 回答
0

您的查询确实显示了第二条评论。请参阅SQL Fiddle 中的此示例

有关编写 a 的更好方法join,请参阅Michael Fredrickson 的回答

于 2013-03-25T21:39:27.907 回答