Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android SQL:将带有外键的表交叉到两个不同的表_Android_Sql_Orm_Foreign Key Relationship - Fatal编程技术网

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%””