2016-03-29 10 views
0

Ich habe zwei Tabellen mit debt_id und es Status. Wie bekomme ich keine bezahlte Schuld ID? Versuchte verschiedene Abfragen mit unterschiedlichen, existieren und usw., aber ohne Glück .. Vielleicht hat jemand eine Idee, mir auf die Strecke :)Finden Datensatz, der Datensatz mit bestimmten ID

Das Ergebnis von unten Tabellen sollten debt_id = 11 (wenn Schuld ist nicht bezahlt) werden

+----+---------+---------------+ 
| PK | debt_id | debt_state_id | 
+----+---------+---------------+ 
| 1 |  3 |    1 | 
| 2 |  3 |    2 | 
| 3 |  11 |    1 | 
| 4 |  15 |    1 | 
| 5 |  15 |    2 | 
+----+---------+---------------+ 
+---------------+----------+ 
| debt_state_id | status | 
+---------------+----------+ 
|    1 | not paid | 
|    2 | paid  | 
+---------------+----------+ 
+0

'SELECT debt_id VON T GROUP BY debt_id HABEN SUM (debt_state_id = 1)> 0 UND SUM (debt_state_id = 2) = 0' – Mihai

+0

Danke !! Das war, was ich suchte:} – rokas

Antwort

0

können Sie verwenden not exists

select t1.debt_id from table_name t1 
where t1.debt_state_id = 1 
and not exists (
select 1 from table_name t2 
where t1.debt_id = t2.debt_id 
and t2.debt_state_id = 2 
) 

Hier table_name die erste Tabelle in die Frage ist

+0

Ich habe Debt_id in der zweiten Tabelle nicht .. Und es gibt nicht die richtige Antwort zurück – rokas

+0

Die Abfrage verwendet nicht die zweite Tabelle, die nur die erste Tabelle verwendet. –

+0

Aber du hast 't1.debt_id = t2.debt_id' geschrieben – rokas

Verwandte Themen