2010-06-18 80 views
0

HI 2倍型动物的值,我有两个表 1-名称,ID代码 2- ID,价值,概念显示来自相同场

一个名称可以有两个概念和两个值。我想检索这个: ID,名称,值1,值2。

我该怎么做?

坦克

+0

什么字段用于链接表1和2?或者身份证是公钥? – 2010-06-18 15:46:05

+0

请澄清这个问题。这听起来像你想要在两个表上执行一个JOIN操作,通过ID连接。 – Alex 2010-06-18 15:50:13

回答

0

例如,您可以

SELECT t.id, t.name, t.value as value1, t2.value as value2 
FROM table2 as t 
    INNER JOIN table2 as t2 ON t.id = t2.id AND t.value <> t2.value 

做的,但也有许多其他可用的方法。

编辑

SELECT t1.id, t1.name, t2a.value as value1, t2b.value as value2 
FROM table1 as t 
    INNER JOIN table2 as t2a ON t.id = t2a.id 
    INNER JOIN table2 as t2b ON t.id = tba.id AND t2b.value <> t2a.value 

注:解决方案假定有2行每个ID(在3行情况下,你将得到的结果每个ID多行)

+0

看起来不错,除非您仅使用他提到的第二个表格并且“名称”列在第一个表格中。我唯一要添加的是在table1.id = table2.id上做table1作为t1的另一个连接,所以他将名称字段设置为t1.name – Kyra 2010-06-18 15:52:52

+0

yup,你是对的,我错过了......更新 – Unreason 2010-06-18 16:37:28

1

这将是一个开始:

SELECT 
    T.id, 
    T.name, 
    V1.value AS value1, 
    V2.value AS value2 
FROM 
    My_Table T 
LEFT OUTER JOIN My_Values V1 ON V1.id = T.id 
LEFT OUTER JOIN My_Values V2 ON V1.id = T.id 

但这里的问题是,什么区别价值1和价值2?它是“概念”中的一个值,它是否首先添加到数据库中?其他列有更高的ID列?您的要求没有完整阐述。

相关问题