table -- > qt
qstnId | tagId |
---|---|
1 | 1 |
1 | 2 |
2 | 3 |
2 | 4 |
2 | 2 |
table --> question
qid |
---|
1 |
2 |
qid is primary key and qstnId is Fk
now when i'm running query -->
mysql> select tagId from qt inner join question on qt.qstnId = 1;
it's returning;
tagId |
---|
2 |
1 |
2 |
1 |
My question is why am i getting duplicate data here.
CodePudding user response:
Filtering
qt.qstnId = 1
is a filtering clause; it belongs in a WHERE
clause.
Relation
qt.qstnId = question.qid
states how the tables are related via a JOIN
. It belongs in an ON
clause after the JOIN
.
Fix your query; if you still have concerns; provide SHOW CREATE TABLE
so we can see if you have the necessary indexes (for performance).
CodePudding user response:
SELECT tagId
FROM qt
INNER JOIN question on qt.qstnId = question.qid
WHERE qid=1;