16. marts 2004 - 13:50Der er
14 kommentarer og 1 løsning
2 x inner join
Hejsan experts!
Jeg har det her system, der viser et products. Derfra skal listes de serveringsforslag, hvor det viste produkt indgår.
Bagved det, ligger en mange-til-mange relation i stil med:
t_cooking c_id c_name
t_products p_id p_products
t_cooking_products cp_productid cp_cookingid
nu har jeg så lavet den her SQL:
SELECT c_id, c_name FROM t_cooking INNER JOIN t_cooking_product ON c_id = cp_cookingid INNER JOIN t_products ON cp_productid = p_id WHERE p_id = 16 ORDER BY c_name
Når det bliver kørt, får jeg denne fejl:
"Der er en syntaksfejl, fordi der mangler en operator. i forespørgselsudtrykket "c_id = cp_cookingid INNER JOIN t_products ON cp_productid = p_id"
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
SELECT c_id, c_name FROM (t_cooking INNER JOIN t_cooking_product ON c_id = cp_cookingid) INNER JOIN t_products ON cp_productid = p_id WHERE p_id = 16 ORDER BY c_name
Du behøver vel heller ikke at bruge t_products, hvis du afgrænser på p_id (så kan du lige så godt sige: WHERE cp_productid=16)
jeg porterede over til min ms sql server... og det virkede...
her er min struktur (som altså virker på ms sql)
arrCookings = createArray("SELECT c_id, c_name FROM t_cooking INNER JOIN t_cooking_product ON c_id = cp_cookingid WHERE cp_productid=16",strDSN1)
createArray() er en funktion, der bare smider resultatet i et array vha. getrows().
ser således ud: function createArray(strSql, strConnection) ' returns a two-dimensional array from a given strSql and strConnection strSql = trim(strSql) set objRs = server.createobject("adodb.recordset") objRs.open strSql, strConnection if not objRs.eof then createArray = objRs.getrows() end if objRs.close set objRs = nothing end function
SELECT t_cooking.c_id, t_cooking.c_name FROM t_cooking INNER JOIN t_cooking_product ON t_cooking.c_id = t_cooking_product.cp_cookingid WHERE t_cooking_product.cp_productid = " & intId & " ORDER BY t_cooking.c_name
tja... sandt nok... men tak for den vedholdende hjælp! var lige ved at gå helt i sort. ;) - kan nu stadigvæk ikke lide access. :o)
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.