2016-11-08 8 views
3

私は3つのテーブルを持っています:te_event、te_venue、te_category。IDを繰り返さずに3つのテーブルに参加する方法は?

te_eventテーブルには列があります。categoryID, venueID, event description, title, date, price.

te_venueテーブルには列があります。venueID, venueName and location.

te_categoryには列があります。ここcatID and catDesc.

は私のクエリは

SELECT * 
FROM te_events 
INNER JOIN te_venue 
     ON te_events.venueid = te_venue.venueid 
INNER JOIN te_category 
     ON te_events.catid = te_category.catid 

ですが、それはこのように表示ID番号を再記入して

eventID | eventTitle | eventDescription |venueID | catID| eventStartDate |eventEndDate |eventPrice | venueID | venueName | location| catID | catDesc

+0

参加を繰り返し、1つのテーブル内の値のセットを引き起こすことができるのに役立ちます願っています。 'DISTINCT'を使用すると、あなたが望むものが得られます。 –

+0

[複数の行に同じIDを持つMYSQLの2つのテーブルを結合する方法]の可能な複製(http://stackoverflow.com/questions/18103551/how-to-join-2-tables-in-mysql-with-same- id-on-multiple-rows) – SnakeEye

+0

各テーブルのサンプルデータ、取得したデータ、予想される結果を – Viki888

答えて

1
SELECT e.event_description, e.title,e.date,e.price,v.venueName,v.location,c.catDesc 
    FROM te_events e 
    INNER JOIN te_venue v ON e.venueID = v.venueID 
    INNER JOIN te_category c ON e.catID = c.catID 

必要な列だけを選択しないのはなぜ

enter image description here

+0

にする必要があります。SELECT te_events.eventID、te_venue.venueName、te_category.catDesc FROM te_events INNER JOIN te_venue ON te_events .venueID = te_venue.venueName INNER JOIN te_category ON te_events.catID = te_category.catID; しかし、何も返されません –

+0

何か例外が出るか、結果が得られませんか? –

+0

何も得られない.... –

1

以下の私の結果を参照してください?たとえば:

 SELECT E.eventID, E.eventTitle, E.eventDescription, 
      E.eventStartDate, E.eventEndDate, E.eventPrice 
      E.catID, V.venueID, V.venueName, V.location 
      FROM te_events AS E 
      INNER JOIN te_venue AS V ON E.venueID = V.venueID 
      INNER JOIN te_category AS C ON E.catID = C.catID 

は、それは少し長いかもしれないが、それはまだほとんどの場合、あなたが期待される結果を与えることができます。

乾杯。&幸運。

+0

何が長く? – alirakiyan

+0

@alirakiyan **上記のようなフィールド名をすべて入力すると、ちょうど 'SELECT *'と入力するよりも長くなる可能性があります** **その文の意味は**; - )** – Poiz

0
SELECT DISTINCT t1.categoryID,t1.venueID,t1.eventDescription,t1.title,t1.date,t1.price,t2.venueName, t2.location, t3.catDesc FROM te_events AS t1 
       INNER JOIN te_venue AS t2 ON te_events.venueID = te_venue.venueID 
       INNER JOIN te_category AS t3 ON te_events.catID = te_category.catID 

私はそれはレコードが複数回一致した場合

関連する問題