2016-08-09 34 views
0

Hallo ich wollte helfen, jemand fragen, kann mir diese zwei-Anweisung in einerKombination von 2 SQL-Statement

SELECT * FROM worker_leave WHERE YEAR(yearAppplied) = YEAR(DATE_SUB(CURDATE(), INTERVAL 1 YEAR)) 

Und

SELECT * FROM worker_leave WHERE YEAR(yearAppplied) = YEAR(CURDATE()) 

Ich möchte die Gesamt verlassen, eine Person zählen erreichen beizutreten haben innerhalb laufenden Jahres und des Vorjahres insgesamt darf nicht mehr als 24 (Kontrolle auf php Seite sein kann)

Dank

+1

kombinieren sie wie? die zwei Where-Klauseln sind nicht kompatibel. Ein einzelner Wert in einem einzelnen Feld kann nicht gleichzeitig zwei verschiedene Werte sein. –

+1

was ist mit der Verwendung von Union alle –

+0

Dank Union ist die Antwort :) –

Antwort

4
SELECT * FROM worker_leave 
WHERE YEAR(yearAppplied) = YEAR(DATE_SUB(CURDATE(), INTERVAL 1 YEAR)) 
    OR YEAR(yearAppplied) = YEAR(CURDATE()) 

Dies wird Ihnen kombinierten Ergebnisse für beide Abfragen.

1

Sie können

SELECT * FROM worker_leave WHERE YEAR(yearAppplied) = YEAR(DATE_SUB(CURDATE(), INTERVAL 1 YEAR)) 
UNION 
SELECT * FROM worker_leave WHERE YEAR(yearAppplied) = YEAR(CURDATE()) 

Stellen Sie sicher, dass die Spalten von beiden Abfragen sind indentical [Struktur] zurück