Android SQL:将带有外键的表交叉到两个不同的表
我有三张桌子:Android SQL:将带有外键的表交叉到两个不同的表,android,sql,orm,foreign-key-relationship,Android,Sql,Orm,Foreign Key Relationship,我有三张桌子: zip_code_data |zipCodeId| primary key |zipCode| indexed |other columns...| location_data |locationDataId| primary key |city| indexed |other columns...| x_data |id| primary key |zipCodeId| foreign key |locationDataId| foreign key 我的目标是运行zip
zip_code_data
|zipCodeId| primary key
|zipCode| indexed
|other columns...|
location_data
|locationDataId| primary key
|city| indexed
|other columns...|
x_data
|id| primary key
|zipCodeId| foreign key
|locationDataId| foreign key
我的目标是运行zipcode或city的查询,并从zip_code_数据表和location_数据表中获取与其关联的所有数据
例如,如果用户搜索zipcode,我希望从两个表中提取与该zipcode关联的所有数据。
我的第一个猜测是首先从交叉表(x_数据,下面的示例)中获取外键,然后使用这些外键从各个表中获取数据。。。因为我是一个新手,所以我不知道最好的方法
SELECT x_data.zipCodeId, x_data.locationDataId
FROM x_data
INNER JOIN zip_code_data
ON x_data.zipCodeId=zip_code_data.zipCodeId
WHERE zip_code_data.zipCode LIKE '2322%'
您可以创建一个内联视图:
select zips.othercolumn, LOCS.city
from zips
inner join x_data on zips.zip = x_data_zip and zips.zip like .....
left join (
select id, locations.city from locations
where locations.id = x_data.locationid
) as LOCS
或者只加入位置表:
left join locations as locs on locs.locationid = x_data.locationid
我正要发布:
SELECT zip.*,loc.*
FROM x_data xref
JOIN zip_code_data zip ON zip.zipCodeId=xref.zipCodeID
JOIN location_Data loc ON loc.locationDataID=xRef.locationDataID
WHERE zip.zipCode LIKE '2322%' or loc.city LIKE '%aaa%'
但看起来您已经收到了…谢谢您的快速回复。事实上,在你发布此消息之前,我刚刚用另一种方法解决了这个问题。从x_数据中选择zip_代码数据。*,从x_数据中选择位置数据。*在x_数据中内部连接zip_代码数据。zipCodeData Id=zip_代码数据。zipCodeId在x_数据中内部连接位置数据。locationData_Id=location_数据。locationDataId其中zip_代码数据。zipCode类似“23221%””