嘿我在使用我使用的查询从我的数据库中获取正确信息时遇到问题,我有以下数据库:
甲板
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');
Card表具有以下值:
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与牌组中的ID 1相关)。
所以我们假设我们在Deck中有以下值:
1 myFirstDeck
2 mySecondDeck
我现在想要得到这个回报:
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';
但这只会让pickachu给我,而不是我想要的charmender。如何调整此查询以获得所需结果?
答案 0 :(得分:1)
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');