webForumDet fria alternativet

Hämta id från en tabell som inte finns i en annan tabell

Databaser & SQL

2 svar · 315 visningar · startad av MickeA.com

Medlem sedan feb. 20034 441 inlägg
Frågan#1

Hej,

Har två tabeller:

[b]school_notifies[/b]
not_id, primary, int
not_user, int
not_group, int
...

[b]school_invoice[/b]
invoide_id, primary, int
invoice_parent, (relaterad till 'school_notifies.not_id'), int
...

Nu ska jag hämta de "not_id" som _inte_ finns i invoice.

Har gjort såhär:

SELECT 
not_id, not_user_id, not_inv_num 
FROM school_notifies 
WHERE not_group_id = <group_id>
AND not_type = 1 
AND not_pay_type = 707 
AND not_id NOT IN (
	SELECT invoice_parent
	FROM school_invoice
	WHERE invoice_parent IN(<parent_id>)
)

Det här funkar bra när jag skickar skickar in t.ex. not_id NOT IN (2, 3), men när jag kör not_id NOT IN (2) (alltså bara skickar med ett id) så funkar det inte.

Det jag är ute efter är följande:

  • 'school_notifies' innehåller bokningar, 'school_invoice' innehåller fakturor.
  • Jag ska nu skapa nya fakturor för de bokningar som inte redan har en faktura.
  • Jag skickar in samtliga bokningar i en grupp och vill endast "få kvar" de bokningar där det inte redan finns en faktura.

DBMS är MySQL.

Förslag på lösning?

Medlem sedan dec. 200012 464 inlägg
#2

Vad menar du med att du skickar in not_id NOT IN (2, 3)? Det stämmer ju inte med din fråga.
Vad meanr du med att det inte fungerar?
Varför har du med detta villkor?

WHERE invoice_parent IN(<parent_id>)
Medlem sedan feb. 20034 441 inlägg
#3

Hmm, jag har nog tänkt fel från början och rört ihop saker...
Säg att jag skickar med 2,3,4,5 till frågan och det finns redan fakturor för 2 och 5.

Då ska jag på något sätt lista ut det, och bara skapa fakturor för 3 och 4.
Jag vill alltså hämta ID'n från school_notifies för dom posterna som _inte finns_ i school_invoice.

260 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
129 ms — deklarationer (db)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)