Hier ist meine Tabellenstruktur:Wie kann ich übereinstimmende Zeilen einzeln zählen?
-- qanda (stands for questions and answers)
+----+---------+-----------------------------------------------+--------------+-----------+------+
| id | title | content | question_id | user_id | type |
+----+---------+-----------------------------------------------+--------------+-----------+------+
| 1 | title1 | this is a question | NULL | 213423 | 0 |
| 2 | NULL | this is an answer | 1 | 435344 | 1 |
| 3 | NULL | this is another answer | 1 | 432435 | 1 |
| 4 | title2 | this is another question | NULL | 124324 | 0 |
| 5 | NULL | this is an answer for the second question | 4 | 213423 | 1 |
| 6 | NULL | this is another answer for the first question | 1 | 213423 | 1 |
+----+---------+-----------------------------------------------+--------------+-----------+------+
Ich möchte einzeln die Anzahl der Fragen und Antworten zu zählen. Wie kann ich das machen?
Das erwartete Ergebnis für diesen Benutzer: :user_id = 213423
+--------+--------+
| q_num | a_num |
+--------+--------+
| 1 | 2 |
+--------+--------+
ich tun kann, dass durch zwei Abfragen getrennt:
SELECT count(*) q_num FROM qanda WHERE user_id = :user_id AND question_id IS NULL
SELECT count(*) a_num FROM qanda WHERE user_id = :user_id AND question_id IS NOT NULL
Kann ich das in einer Abfrage zu tun?
In Ihrem letzten Abfrage gibt es zwei 'a_num'. Einer von ihnen sollte 'q_num' sein. Danke, upvote –
@MartinAJ. . . Das war keine Frage. Das waren zwei Möglichkeiten, dasselbe zu tun. –
Ok, ich habe meine Frage nicht genau genug gestellt. Eigentlich habe ich noch eine Spalte namens 'type'. Es enthält "0" für Fragen und "1" für Antworten. Kannst du mir bitte sagen, wie ich damit umgehen kann? –