我有两个表,它们没有以标准方式链接(我知道这不是一个好方法)

可以说表格的设置如下

表:
零件

领域:
cid,cname,rangeid,公司

表:范围

领域:
摆脱,范围名称,年份

尽管在关系型数据库中这很简单,但我不太确定否则会采用的最干净方法(重新构建数据库不是一种选择)。

我需要的基本查询是。

select * from component where range.year = '2014' and company = 'xxx'


任何建议将不胜感激。

最佳答案

这是您要找的东西吗?

SELECT a.cid, a.cname, a.rangeid, a.company, b.rid, b.rangename, b.year
FROM component a
JOIN ranges b ON
    b.rid = a.rangeid
WHERE b.year = 2014
    AND a.company = 'xxx'


结果

| CID | CNAME | RANGEID |公司简介RID | RANGENAME |年|
------ | ------------- || --------- | --------- | ----- | ----- ------ | ------ |
| 1 |组件| 1 | xxx | 1 |范围| 2014 |

Demo

如果component中可能不存在来自ranges的范围,请使用LEFT JOIN

10-08 18:47