【发布时间】:2016-08-11 06:16:07
【问题描述】:
我有三张桌子场地、服务和供应商详细信息。我想从所有表中获取所有列。
我尝试加入两个表,但我得到 1 条记录 3 次,得到重复记录。
查询:
SELECT venues.venueId,venues.venue_name,venues.latitude,venues.longitude,venues.active,services.serviceId,services.service_name,services.latitude,services.longitude,services.active FROM `venues`,`services` WHERE venues.vendorId = services.vendorId
记录:
venueId
venue_name
latitude
longitude
active
serviceId
service_name
latitude
longitude
active
4
siddhi hall
-2.8437453
23.3823545
1
1
DJ siddhi
1211
4545
1
4
siddhi hall
-2.8437453
23.3823545
1
2
siddhi cateror
0
0
1
4
siddhi hall
-2.8437453
23.3823545
1
3
flowerist
-10.4212157
28.6031842
1
5
siddhi cafe
0
0
1
1
DJ siddhi
1211
4545
1
5
siddhi cafe
0
0
1
2
siddhi cateror
0
0
1
5
siddhi cafe
0
0
1
3
flowerist
-10.4212157
28.6031842
1
6
siddhi cafe
-1.899681
22.72851
1
1
DJ siddhi
1211
4545
1
6
siddhi cafe
-1.899681
22.72851
1
2
siddhi cateror
0
0
1
6
siddhi cafe
-1.899681
22.72851
1
3
flowerist
-10.4212157
28.6031842
1
7
green lawn
-10.4212157
28.6031842
1
1
DJ siddhi
1211
4545
1
7
green lawn
-10.4212157
28.6031842
1
2
siddhi cateror
0
0
1
7
green lawn
-10.4212157
28.6031842
1
3
flowerist
-10.4212157
28.6031842
1
8
hotel nashik
-2.6357434
18.4276047
1
1
DJ siddhi
1211
4545
1
8
hotel nashik
-2.6357434
18.4276047
1
2
siddhi cateror
0
0
1
8
hotel nashik
-2.6357434
18.4276047
1
3
flowerist
-10.4212157
28.6031842
1
场地表:
Name Type
1 venueId Primary int(11)
2 venue_name varchar(255)
3 venuetypeId int(11)
4 entry_by varchar(255)
5 venue_address varchar(255)
6 latitude double
7 longitude double
8 active int(11)
9 vendorId int(11)
服务:
Name Type
1 serviceIdPrimary int(11)
2 entry_by varchar(255)
3 service_name varchar(255)
4 service_address varchar(255)
5 latitude double
6 longitude double
7 servicetypeId int(11)
8 active int(11)
9 vendorId int(11)
供应商详情:
Name Type
1 vendorIdPrimary int(11)
2 username varchar(30)
3 vendorName varchar(255)
4 password varchar(200)
5 active int(1)
7 vendorCountry varchar(100)
8 vendorState varchar(100)
9 vendorCity varchar(100)
10 vendorLocality varchar(200)
11 vendorArea varchar(200)
12 vendorAddress text
13 vendorPincode varchar(200)
14 emailId varchar(255)
15 mobileno varchar(15)
16 phoneno varchar(15)
17 logo1 varchar(100)
18 logo2 varchar(100)
19 logo3 varchar(100)
20 venueId int(11)
21 entry_by varchar(20)
22 entry_date varchar(20)
23 entry_time varchar(20)
24 last_modify_date varchar(20)
25 ip_addr varchar(20) latin1_swedish_ci
26 deviceToken varchar(200)
我怎样才能得到这个?谢谢你。。
【问题讨论】:
-
你想在结果集中做什么?供应商的所有服务?
-
是的,供应商的所有服务和场所以及供应商详细信息、供应商编号、地址、名称。 @AlokPatel
-
venues和services没有直接相互连接。所以你结合了只有供应商的结果和它的服务。如果您在vendors和venues上添加join,则会导致重复结果,因为一个供应商可能有多个场所并可能提供多种服务。 -
我想搜索供应商的场所和服务。你的选择也很好。然后我必须创建两个不同的 API 来获取供应商的场地和服务。你能提出一个查询吗?@AlokPatel
标签: mysql database join relational-database