使用聚合(SQlite)联合多个表和组

使用聚合(SQlite)联合多个表和组,sqlite,group-by,union,Sqlite,Group By,Union,我有这样一个数据: 表1 id | part | price 1 | ox900 | 100 2 | ox980 | 200 及 表2 id | part | price 1 | ox560 | 560 2 | ox980 | 120 因此,我希望得到这样的模式: id | part | priceTable1 | priceTable2 | minPrice 1 | ox900 | 100 | | 100 1 | ox980 | 2

我有这样一个数据:

表1

id | part  | price
1  | ox900 | 100
2  | ox980 | 200

表2

id | part  | price
1  | ox560 | 560
2  | ox980 | 120
因此,我希望得到这样的模式:

id | part  | priceTable1 | priceTable2 | minPrice
1  | ox900 | 100         |             | 100
1  | ox980 | 200         | 120         | 120
1  | ox560 |             | 560         | 560
要简化它,可以不使用
minPrice

现在我有这样的疑问:

SELECT  *
FROM (select part, price from supportContacts
union all
select part, price from supportContacts2)
group by part
但这并不完全是我想要实现的

有没有可能做到我上面所说的


还有一个问题:

SQLite不支持完整的外部联接,因此请先获取所有零件的列表,然后使用左侧外部联接查找它们的价格:

SELECT part,
       table1.price AS priceTable1,
       table2.price AS priceTable2,
       min(ifnull(table1.price, 'inf'),
           ifnull(table2.price, 'inf')) AS minPrice
FROM (SELECT part FROM table1
      UNION
      SELECT part FROM table2)
LEFT JOIN table1 USING (part)
LEFT JOIN table2 USING (part);

()

改为进行外部联接。一个好主意。。。但是作为min,我可以在那里有一个空值,这是不对的:)哦,非聚合的
min()
不会忽略空值…顺便说一句,如果我有1,2,3..n个相同的表,它是相同的,对吗?是的。(但是如果有很多这样的表,那将是糟糕的数据库设计。)顺便问一下,为什么要将
用作priceTable1