私はちょうど悪いデザインか何かを持っているかどうかは分かりませんが、これを理解することに問題があります。ここに私のテーブル..MySQL - 特定のパラメータを使用していくつかのテーブルを選択すると複雑になる
BANDS
[pk]bandid
bandname
SHOWS_BANDS
[fk]bandid
[fk]showid
SHOWS
[pk]showid
date
cost
ages
VENUES
[pk]venueid
venuename
street
city
state
zip
[fk]showid
バンドは多くのショーを持つことができ、ショーは多くのバンドを持つことができます。会場には多くのショーがあります。
私は何を持っていることは"bandid"
であり、それを私がbandid
は言い換えればshowid
にリンクされているVenues
とShows
テーブルから値を選択したい、私はその番組のすべてを選択します私のデータベースのすべてのシングルショーを選択するために、Venues
とShows
でINNER JOIN
を使用しました。ここで
は、私は(知ら"bandid"
パラメータとして"1"
を使用して)みましたものです:
SELECT (SELECT showid FROM shows_bands WHERE bandid = 1) AS showid,
shows.date, shows.cost, shows.ages, venues.venuename, venues.street,
venues.city, venues.state, venues.zip
FROM shows
INNER JOIN venues
ON showid = venues.showid;
私は他の多くのことを試してみましたが、これは最も最近のものであると私は他のものが保存されていません。論理的にはうまくいくようですが、INNER JOIN ON
節の中のAS
のshowid
は使用できません。どんな助けもありがとう!ここで
は、一つ一つの番組を選択する問合せです:
SELECT venues.venuename, venues.street, venues.city, venues.state,
venues.zip, shows.date, shows.cost, shows.ages, shows.showid
FROM venues
INNER JOIN shows
ON venues.showid = shows.showid;
私は技術的には、私のプログラムのコードでは、私はちょうどショーのすべてを選択することができ、その後、バンディッドに基づいてそれらを除外すると思います。しかし、もし私がただ一つのSQLクエリでそれを行うことができれば、より効率的に思えるでしょう。 – kyrole
テーブル定義で、Venues.showIdを削除してShows.venueIdを追加すべきですか? – gfunk
そのクエリはエラーが発生しているので、私は本当に分かりません。私は出発点として使用したすべてのシングルショーを選択するクエリを追加するために投稿を更新しました。 – kyrole