我有两个表cars
和owners
。 OWNERNO
是表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
答案 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)
您的查询似乎不清楚,有些不可能。
使用外键将一个表中的记录与另一个表相关联。一条记录在另一个表中不相关时如何插入。
解决方法使用候选键(多个键),但您应该同意查询似乎不合主题