2017-05-22 1 views
0

Hallo Ich arbeitete an einer SQL-Abfrage, um die Auswahl zählen zu erhalten, aber es sagt Fehler, wenn Sie die Beratung prepraing, würde es Ihnen etwas ausmachen, mir Jungs, mit diesem Problem zu helfen. Hier ist die Struktur meiner Tabellen.Aufruf einer Tabelle in einem SQL-Fehler

Tabellenstruktur

categorias Table 
------------------------------ 
idCat(PK) nombre 
------------------------------ 
1  "category1" 
2  "category2" 
3  "category3" 


subcategorias Table 
------------------------------------ 
idSubcat(PK) nombre categId(FK) 
--------------------------------- 
    1   "subcat1"  2 
    2   "subcat2"  3 
    3   "subcat3"  3 

meiner Anfrage

SELECT count(*) valor 
FROM subcategorias 
WHERE categorias.nombre= "category3" 
AND subcategorias.nombre= "subcat1" 

und meine Abfrage spected Ergebnis 1 sein sollte, aber es sagt, Fehler:/

Antwort

0

Try this:

SELECT count(*) 
FROM categorias, subcategorias 
WHERE categorias.nombre= "category3" AND subcategorias.nombre= "subcat1" 
0

Sie müssen Mach einen Join mit den beiden Tischen dort. Das Problem besteht darin, dass Sie eine Auswahl aus Unterkategorien mit einer Auswahl vornehmen, die Daten aus einer anderen Tabelle enthält. Etwas wie das.

SELECT count(*) valor 
FROM subcategorias 
INNER JOIN categories ON categorias.nombre= "category3" 
WHERE subcategorias.nombre= "subcat1" 
1

Das sind zwei getrennte Tabellen, die nicht automatisch „wissen“ umeinander, so dass man nicht von einem von ihnen (subcategorias) abfragen können, und annehmen, dass es weiß, dass man es Wert ist (categId = 3) zeigt auf eine bestimmte Zeile (mit ID = 3) in der anderen Tabelle.

Was Sie tun müssen, ist, die beiden Tabellen in der Join-Abfrage:

SELECT count(*) 
FROM subcategorias 
JOIN categorias on subcategorias.CategId = categorias.IdCat 
WHERE categorias.nombre= "category3" 
AND subcategorias.nombre= "subcat1" 

Wenn Sie dies versuchen, ohne die where-Klausel, werden Sie sehen, dass es Kombinationen von Zeilen aus den Tabellen „Joins“ basierend auf Ihrer Bedingung, dass die Kategorie-IDs übereinstimmen sollten.

Ihre WHERE-Klausel wird dann effektiv von dieser resultierenden "Combo-Tabelle" abfragen und sollte Ihnen das gewünschte Ergebnis geben.

Verwandte Themen