我有三个表场所,服务和vendorDetails。我想从所有表中获取所有列。
我试过加入两张桌子,但我得到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)
vendorDetails:
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)
我怎么能得到这个?谢谢..
答案 0 :(得分:0)
早上好!
如果您真的想要获取所有三个表中的所有列,只需选择*
个列:
SELECT * FROM table1, table2, table3;
根据表格,请求所有列可能需要更长的时间。
答案 1 :(得分:0)
请试试这个
SELECT * FROM venues INNER JOIN services USING(vendor_Id);
至少对于你的2个表而言,只要你在表中拥有完全相同的列名,它就适用于3个或更多的ofc。但我不确定你是否在你的问题中错过了你的表格,或者你的供应商ID真的是vendorIdPrimary
答案 2 :(得分:0)
select *
from
tableA a
inner join
tableB b
on a.common = b.common
inner join
TableC c
on b.common = c.common
您必须在这三个表中定义公共列。