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"
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.