我有以下问题:
在DB中,我有两个表。第一个表中一列的值可以出现在第二个列中的两个不同列中。
所以,配置如下:
TABLE_A:列Print_group 表_B:列Print_digital和Print_offset
Table_A的不同行和Print_group列中的值可以出现在Table_B的一行中,但位于不同的列中。
我有以下查询:
SELECT DISTINCT * FROM Table_A
INNER JOIN B ON (Table_A. Print_digital = Table_B.Print_group OR
Table_A.Print_offset = Table_B.Print_group)
问题是此查询从Table_A返回相同的行两次。
我做错了什么?什么是正确的查询?
感谢您的帮助
答案 0 :(得分:0)
如果我正确理解您的问题,您只需要澄清您的字段来自Table_A
:
SELECT DISTINCT A.*
FROM Table_A A
INNER JOIN B ON A.Print_digital = B.Print_group
OR A.Print_offset = B.Print_group
修改强> 的
鉴于您的意见,看起来您只需要SELECT DISTINCT B.*
SELECT DISTINCT B.*
FROM Table_A A
INNER JOIN B ON A.Print_digital = B.Print_group
OR A.Print_offset = B.Print_group
答案 1 :(得分:0)
我还有另外一个问题......首先,要明确的是,正确的查询版本是
SELECT DISTINCT A. * FROM Table_A A. INNER JOIN B ON A.Print_digital = B.Print_group 或A.Print_offset = B.Print_group。
如果我想要它还返回B表中的一列,它再次返回重复的行。我的查询(坏的)是以下一个:
SELECT DISTINCT A. *,B.Id FROM Table_A A. INNER JOIN B ON A.Print_digital = B.Print_group 或A.Print_offset = B.Print_group