0

同じデータベース内の 3 つのテーブルから読み取る単一のクエリを作成する必要があります。

テーブル:

1. cm_players
player_id
card_no
club_id
surname
name
birthdate

2. cm_clubs
club_id
prefix
name
address
place
stadium_id
telephone
fax
email
web
contact_person
president
secretary
press_officer
status
image

3. cm_registrations
player_id
surname
name
birthdate
birthplace
club_id
date_from
date_to
amateur
status

だから、私は表示する必要があります

cm_players.name, 
cm_players.surname, 
cm_clubs.name, 
cm_players.birthdate, 
cm_players.card_no,

cm_players に cm_clubs で参加してクラブの名前を取得し、cm_registrations でユーザーがアクティブかどうかを確認します.....

私は次のようなことを試しました:

SELECT cm_players.name, cm_players.surname, cm_clubs.name, cm_players.birthdate, cm_players.card_no, cm_registrations.amateur FROM cm_players 
INNER JOIN cm_clubs on cm_players.club_id = cm_clubs.club_id, cm_registrations 
WHERE cm_players.name LIKE '%$name%' AND cm_players.surname LIKE '%$surname%' AND cm_players.player_id = cm_registrations.player_id AND cm_registrations.amateur = 0 ORDER BY cm_players.player_id ASC

しかし、運が悪い...

このクエリの作成を手伝ってくれる人はいますか?

4

2 に答える 2

0

cm_registrations WHERE cm_players.name LIKE '%$name%' AND cm_players.surname LIKE '%$surname%' AND cm_players.player_id = cm_registrations.player_id AND cm_registrations.amateur = 0 ORDER BY cm_players.player_id cm_registeration よりも変更して修正してみてください。

于 2013-07-20T13:42:45.943 に答える
0

ここでは、テーブルのエイリアスを設定し、そのテーブルの適切なエイリアス名を使用して列の値を取得し、クラブと登録の2 つのテーブルで内部結合を使用しています。

SELECT cmp.name, cmp.surname, cmc.name, cmp.birthdate, cmp.card_no, cmr.amateur 
  FROM cm_players cmp 
  INNER JOIN cm_clubs cmc on cmp.club_id = cmc.club_id
  INNER JOIN cm_registrations cmr on cmp.player_id = cmr.player_id
  WHERE cmp.name LIKE '%$name%' 
  AND cmp.surname LIKE '%$surname%' 
  AND cmr.amateur = 0 
  ORDER BY cmp.player_id ASC
于 2013-07-20T13:44:03.267 に答える