를 구축 도움이 필요합니다.그래서 내가 열이있는 테이블이 MySQL의 SELECT 쿼리
그것은 다음과 같이 보일 것입니다 :
101, "cardofblahblah", 3, "main"
101, "differentcard", 2, "main"
102, "cardofblahblah", 1, "main"
102, "fictionalcard", 3, "main"
102, "madeupcard", 4, "main"
103, "magicalcard", 2, "main"
103, "trickcard", 3, "main"
...
...
은 그래서 내 데이터베이스의 모습입니다. 내가 필요한 것은 내가 지정한 모든 카드를 포함하는 갑판의 갑판 ID를 반환 할 선택 쿼리입니다. 예를 들어, "madeupcard"사본 1 부와 "cardofblahblah"사본 3 부를 포함하는 갑판이 필요합니다. 그것이 실제로 필요한 것이지만 누군가가 또한 내가 할 수있는 방법을 언급한다면> 또는 < 그냥 금액을 설정하는 대신 좋은 것입니다.
나는 쿼리를 수행하는 방법을 알고 있지만 이렇게 복잡한 것을 작성하는 것은 저를 곤경에 빠뜨립니다.
도움을 주셔서 감사합니다. '
EDIT : 명확히하기 위해, 내가 지정한 모든 카드가 포함 된 데크의 ID를 찾고 있습니다. 예를 들어, "갑판에는 cardofblahblah의 사본 3 개와 madeupcard의 사본 1 장이 들어 있습니까?"
갑판의 ID를 얻을 수있는 모든 종류의 출력이 좋습니다. 갑판 이드를 얻는 것이 나를위한 주요 관심사입니다.
EDIT2 : 그래서 다른 다양한 주제를 다룬 후에 해결책을 찾았습니다. 그러나 가장 효율적인 쿼리가 없을 수도 있습니다. 따라서 누군가가 그것을 향상 시키면 좋을 것입니다.
SELECT table1.deck_id, table2.deck_id FROM decklist AS table1
JOIN (SELECT * FROM decklist WHERE card_name = "cardofblahblah" AND quantity = 3)
AS table2 ON table1.deck_id = table2.deck_id
WHERE table1.card_name = "madeupcard" AND quantity = 1;"
EDIT3 : Telarian에 감사합니다. 그는 나에게 더 나은 질의를했다.
SELECT *
FROM myTable
WHERE ((board='madeupcard' AND quantity=1) OR (board='cardofblahblah' AND quantity=3))
이 당신이 원하는 경우 알려줘 코드 아래
는SELECT t.deck_id
FROM decklist t
INNER JOIN decklist l
ON l.deck_id = t.deck_id
WHERE (t.card_name = "madeupcard" AND t.quantity >= 1)
AND
(l.card_name = "cardofblahblah" AND l.quantity >= 3)
은이어야 시도하고 다시 여기에 당신은 아무것도하지 않았을 때 얻을 ... –
내가 당신의 질문에 추가 한'SQL-일치 all' 태그를 참조하십시오. 이런 유형의 질문은 여러 번 대답되었습니다. –
> = 연산자는 물론 원하는 다른 연산자에 대해 변경 될 수 있습니다. 그래도 사용하기를 원할 것 같습니다. –