如何关联两个SQL表

时间:2019-08-02 20:09:01

标签: sql

我有两个表carsownersOWNERNO是表owners中的主键。我想知道如何将ownerno作为外键放在cars表中,并且仍然插入与第一个表不同的值

汽车

REGNO   MAKE     COLOUR PRICE  OWNERNO
---------------------------------------
KAA462J FORD     RED    120000 824 
KAB230Q SKODA    BLUE   110000 828 
KAV201W MERCEDES BLUE   220000 832 
KAA306T TOYOTA   BLUE   130000 836 

所有者

OWNERNO OWNERNAME OWNERADDRESS 
---------------------------------------
724     Atieno    Otieno 567 Umoja 
828     Hassan    Hussein 987 Kayole 
932     Wanjiru   Wanjiri 735 Kariobangi

2 个答案:

答案 0 :(得分:2)

通过定义,您不能将一列定义为外键,然后将不在参考表/列中的值放入其中。这就是外键的目的-确保引用完整性。

但是,您可以在cars表中具有一列,该列指向所有者表中的ownerno,而不必将其定义为外键。您仍然可以使用该ID JOIN来使用表格:

    SELECT REGNO, MAKE, COLOUR, PRICE, OWNERNAME, OWNERADDRESS
        FROM Cars 
        LEFT JOIN Owners ON Cars.OWNERNO = Owners.OWNERNO
        ORDER BY REGNO

在这种情况下,重要的是使用LEFT JOIN,这样即使没有对应的Owner记录与Cars表中的OWNERNO相匹配,您也将从Cars表中获取所有记录。

答案 1 :(得分:0)

您的查询似乎不清楚,有些不可能。

使用外键将一个表中的记录与另一个表相关联。一条记录在另一个表中不相关时如何插入。

解决方法使用候选键(多个键),但您应该同意查询似乎不合主题

相关问题