Select 行使用子查询进行 JOIN
Select rows with JOIN using a subquery
嘿,我在使用查询从数据库中获取正确信息时遇到问题,我有以下数据库:
甲板
PK - ID - int
Deckname - varchar(255)
卡片
PK - ID - int
PK Cardname - varchar(255)
Cardvalue - int
Amount - int
现在,当我使用以下查询时:
SELECT * FROM Card WHERE ID IN (SELECT ID FROM Card WHERE Cardname = 'pickachu');
卡片 table 具有以下值:
1 pickachu 50 1
1 charmender 55 2
2 squirtle 65 2
我得到这些行:
1 pickachu 50 1
1 charmender 55 2
ID = 1 因为 pickachu 的 id 为 1,我用它来获取所有 ID 为 1 的卡片。
现在除此之外,我还想要牌组名称(卡片中的 ID 1 table 与牌组中的 ID 1 相关)。
所以假设我们在 Deck 中有以下值:
1 myFirstDeck
2 mySecondDeck
我现在想在 return 中得到这个:
1 pickachu 50 1 myFirstDeck
1 charmender 55 2 myFirstDeck
我一直在尝试使用以下查询获取此信息:
SELECT Card.*, Deck.Deckname FROM Card INNER JOIN Deck ON (Card.ID = Deck.ID) WHERE Card.Cardname = 'pickachu';
但这对我来说只是 return 的 pickachu,而不是我想要的 charmender。我如何调整此查询以获得所需的结果?
无法删除sub-query
。
SELECT c.*, d.Deckname
FROM Card as c INNER JOIN Deck as d ON c.ID = d.ID
WHERE c.ID IN (SELECT ID FROM Card WHERE Cardname = 'pickachu');
嘿,我在使用查询从数据库中获取正确信息时遇到问题,我有以下数据库:
甲板
PK - ID - int
Deckname - varchar(255)
卡片
PK - ID - int
PK Cardname - varchar(255)
Cardvalue - int
Amount - int
现在,当我使用以下查询时:
SELECT * FROM Card WHERE ID IN (SELECT ID FROM Card WHERE Cardname = 'pickachu');
卡片 table 具有以下值:
1 pickachu 50 1
1 charmender 55 2
2 squirtle 65 2
我得到这些行:
1 pickachu 50 1
1 charmender 55 2
ID = 1 因为 pickachu 的 id 为 1,我用它来获取所有 ID 为 1 的卡片。
现在除此之外,我还想要牌组名称(卡片中的 ID 1 table 与牌组中的 ID 1 相关)。
所以假设我们在 Deck 中有以下值:
1 myFirstDeck
2 mySecondDeck
我现在想在 return 中得到这个:
1 pickachu 50 1 myFirstDeck
1 charmender 55 2 myFirstDeck
我一直在尝试使用以下查询获取此信息:
SELECT Card.*, Deck.Deckname FROM Card INNER JOIN Deck ON (Card.ID = Deck.ID) WHERE Card.Cardname = 'pickachu';
但这对我来说只是 return 的 pickachu,而不是我想要的 charmender。我如何调整此查询以获得所需的结果?
无法删除sub-query
。
SELECT c.*, d.Deckname
FROM Card as c INNER JOIN Deck as d ON c.ID = d.ID
WHERE c.ID IN (SELECT ID FROM Card WHERE Cardname = 'pickachu');