VideMedlem sedan dec. 19998 577 inlägg Jag har en sqlsats där en kolumn innehåller en annan sqlsats. Jag vill nu få ut en count() på antalet som matchar denna sqlsats i en annan tabell.
Såhär ser det ut nu:
SELECT EntityID,EntityLabel, '3' as EntityTypeID, EntitySQL FROM p_Entities AS pE WHERE EntityTypeID=3 GROUP BY EntityID,EntityLabel,EntityTypeID,EntitySQL
I tabellen p_Data så vill jag med kolumnen EntitySQL ovan få ut antalet rader jag får träff på i p_Data och sedan få ut detta i sqlsatsen ovan.
Hur gör jag det om jag får fråga?
Mvh,
Vide
Om jag förstår dig rätt så är det nått i denna stilen du vill ha:
SELECT pE.EntityID,
pE.EntityLabel,
'3' as EntityTypeID,
pE.EntitySQL,
(
SELECT COUNT(p_Data.ID) FROM p_Data
WHERE p_Data.EntitySQL = pE.EntitySQL
) AS pDataCount
FROM p_Entities AS pE
WHERE EntityTypeID=3
GROUP BY EntityID,EntityLabel,EntityTypeID,EntitySQL
VideMedlem sedan dec. 19998 577 inlägg Hej plekanec. Jag skulle nog ha beskrivit det bättre. Det är så att sql-satsen som jag vill använda som filter (och därefter köra count på) ligger som ett värde i kolumnen EntitySQL.
Eventuellt kan PREPARE/EXECUTE lösa problemet. Se t ex: http://stackoverflow.com/questions/190776/how-to-have-dynamic-sql-in-mysql-stored-procedure
Men det där att du lagrar SQL-satser på det sättet du gör känns nästan fel. Vad är det egentliga problemet du försöker lösa?