2016-08-11 9 views
0

私は3つのテーブルの会場、サービス、およびベンダー詳細を持っています。私はすべてのテーブルからすべての列を取得したい。3つのテーブルから*を選択するには?

私は2つのテーブルに参加しようとしましたが、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)  

どうすれば入手できますか?ありがとう..

+0

結果セットではどうしますか?ベンダーのすべてのサービス? –

+0

はいベンダーのすべてのサービスと会場、ベンダーの詳細、ベンダーの番号、住所、名前。 @AlokPatel –

+0

「会場」と「サービス」は直接には接続されていません。したがって、ベンダーとそのサービスだけの結果を組み合わせることができます。 「ベンダー」と「会場」に参加すると、1つのベンダーが複数の会場を持ち、複数のサービスを提供する可能性があるため、繰り返し結果が発生します。 –

答えて

0

おはよう!あなたが本当に3つのテーブルのすべてからすべての列を取得したい場合は

あなたは、単にそれらの*を選択することができます。

SELECT * FROM table1, table2, table3; 

テーブルに依存して、すべての列を要求するために少し時間がかかることができます。

+0

これでレコードが重複してしまいます。@ Otterbein –

+1

すべてのテーブルからalle列を取得します。同じ列を持つ2つのテーブルがある場合、名前の両方が同じ名前になります。これを避けるには、それらを1つずつ選択し、 'SELECT column1 AS alias_name、... FROM ...'のようなエイリアス名を与える必要があります。 – Otterbein

0

は、限り、あなたはそれが3、よりOFCのために働くあなたのテーブルにまったく同じColumnNameにを持っているように、少なくとも、あなたの2つのテーブルのために、このしてください

SELECT * FROM venues INNER JOIN services USING(vendor_Id); 

を試してみて。しかし、私はあなたがちょうどあなたの質問に、あなたのテーブルをmissformatedているか、ベンダーのあなたのIDが本当にvendorIdPrimary

0
select * 
from 
    tableA a 
     inner join 
    tableB b 
     on a.common = b.common 
     inner join 
    TableC c 
     on b.common = c.common 

であるあなたは、これら3つのテーブル内共通の列を定義する必要がある場合はわかりません。

関連する問題