【发布时间】:2016-05-17 03:21:04
【问题描述】:
我是 SQL 新手,在编写以下查询时遇到了困难。
场景
一个用户有两个地址,家庭地址 (App\User) 和房源地址 (App\Listing)。当访问者搜索郊区或邮政编码或州的列表时,如果用户的列表地址不匹配 - 但如果家庭地址匹配 - 他们也会出现在搜索结果中。
例如:如果访问者搜索Melbourne,我想包括来自Melbourne 的列表以及地址在Melbourne 中的用户的列表。
预期输出:
user_id first_name email suburb postcode state
1 Mathew mathew.afsd@gmail.com Melbourne 3000 VIC
2 Zammy Zamm@xyz.com Melbourne 3000 VIC
表格
用户:
id first_name email
1 Mathew mathew.afsd@gmail.com
2 Zammy Zamm@xyz.com
3 Tammy tammy@unknown.com
4 Foo foo@hotmail.com
5 Bar bar@jhondoe.com.au
列表:
id user_id hourly_rate description
1 1 30 ABC
2 2 40 CBD
3 3 50 XYZ
4 4 49 EFG
5 5 10 Efd
地址:
id addressable_id addressable_type post_code suburb state latitude longitude
3584 1 App\\User 2155 Rouse Hill NSW -33.6918372 150.9007221
3585 2 App\\User 3000 Melbourne VIC -33.6918372 150.9007221
3586 3 App\\User 2000 Sydney NSW -33.883123 151.245969
3587 4 App\\User 2008 Chippendale NSW -33.8876392 151.2011224
3588 5 App\\User 2205 Wolli Creek NSW -33.935259 151.156301
3591 1 App\\Listing 3000 Melbourne VIC -37.773923 145.12385
3592 2 App\\Listing 2030 Vaucluse NSW -33.858935 151.2784079
3597 3 App\\Listing 4000 Brisbane QLD -27.4709331 153.0235024
3599 4 App\\Listing 2000 Sydney NSW -33.91741 151.231307
3608 5 App\\Listing 2155 Rouse Hill NSW -33.863464 151.271504
【问题讨论】:
-
您可以使用联接或联合。看看这是否有帮助:techrepublic.com/article/sql-basics-query-multiple-tables
-
你能不能也把你想要的输出贴出来,这样更容易理解