我試圖獲得屬於活動玩家的頭像以及電子郵件以「a」開頭的玩家的名稱。在三張桌子上使用內部連接獲取數據
SELECT NAME
FROM AVATAR
INNER JOIN PLAYERAVATAR ON PLAYERAVATAR.PLAYER_ID = PLAYERAVATAR.AVATAR_ID
INNER JOIN PLAYER ON PLAYER.ACTIVE = 1;
我有這個,但它不起作用。我不擅長這一點,所以任何幫助將不勝感激。謝謝。
+-----------+--------------------+-----+--+---+--+
| AVATAR | | | | | |
+-----------+--------------------+-----+--+---+--+
| AVATAR_ID | NUMBER(38,0) | No | | 1 | |
| NAME | VARCHAR2(500 BYTE) | Yes | | 2 | |
| DOB | VARCHAR2(500 BYTE) | Yes | | 3 | |
| HOARD | NUMBER(38,0) | Yes | | 4 | |
| STRENGH | NUMBER | Yes | | 5 | |
| GENDER | VARCHAR2(500 BYTE) | Yes | | 6 | |
| SPECIES | VARCHAR2(500 BYTE) | Yes | | 7 | |
+-----------+--------------------+-----+--+---+--+
+-----------+--------------------+-----+--+---+--+
| PLAYER | | | | | |
+-----------+--------------------+-----+--+---+--+
| PLAYER_ID | NUMBER(38,0) | No | | 1 | |
| NAME | VARCHAR2(500 BYTE) | Yes | | 2 | |
| EMAIL | VARCHAR2(500 BYTE) | Yes | | 3 | |
| ACTIVE | NUMBER(38,0) | Yes | | 4 | |
| PASSWORD | VARCHAR2(500 BYTE) | Yes | | 5 | |
+-----------+--------------------+-----+--+---+--+
+--------------+--------------+-----+--+---+--+
| PLAYERAVATAR | | | | | |
+--------------+--------------+-----+--+---+--+
| PLAYER_ID | NUMBER(38,0) | Yes | | 1 | |
| AVATAR_ID | NUMBER(38,0) | Yes | | 2 | |
+--------------+--------------+-----+--+---+--+
1. 「我有這個,但它不工作。」什麼不工作? 2.「以電子郵件開始的玩家」。我在查詢中的任何地方都沒有看到這樣的標準。 3. NAME存在於AVATAR和PLAYER中。你不想告訴DBMS你想展示哪一個? –
有沒有原因讓你加入表格而不是用'EXISTS'或'IN'查找玩家? –
一個玩家可以有多個頭像,每個頭像可以被多個玩家使用。但是你只想顯示頭像的名字,對吧?如果一個頭像被兩個活躍玩家使用,你想顯示一次或兩次的頭像名稱? –