Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    [SQL] Query con LIMIT legato ad altra query ......

    Ciao.
    Ho un problema che non so come risolvere
    cercerò di spiegarmi.
    Nella index ho una query del genere
    (è un semplice esempio)
    Codice PHP:
    SELECT 
    FROM `posts
    LIMIT 0 10 
    Premessa oltre alla tabella posts
    ho altre due tabelle una in cui
    inserisco i tags e un altra posts2tags
    che contiene il tag_id e il post_id
    (un posts può avere + tags)
    adesso per recuperare i vari
    tags collegati faccio una query
    del genere
    Codice PHP:
    SELECT p.post_idt.tag_namet.tag_id
    FROM posts 
    AS p
    INNER JOIN posts2tags 
    AS r ON p.post_id r.post_id
    INNER JOIN tags 
    AS t ON t.tag_id r.tag_id
    ORDER BY p
    .post_id DESC LIMIT 0,10
    query sbagliata perchè se il primo post avesse
    per assurdo dieci tags ...............


    In parole povere dovrei fare una query
    solamente per i primi 10 posts
    è possibile ?


    Without faith, nothing is possible. With it, nothing is impossible
    http://ilwebdifabio.it

  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Usando le query annidate dove fai il join con la tabella già limitata ai primi 10 record dovrebbe essere fattibile.

  3. #3
    Originariamente inviato da nicola75ss
    Usando le query annidate dove fai il join con la tabella già limitata ai primi 10 record dovrebbe essere fattibile.

    Grazie della riposta

    ma se mi fai un piccolo esempio di cioè che
    intendi mi fai un gran favore.


    Il fatto è che potrei mettere il tutto
    in una semplice query quando recupero i
    posts ma come saprai invece di una sola
    row x post mi escono tante rows quanti sono i
    tags x post ;( .

    Preferirei fare una query in +
    per poi gestire il tutto via php
    tramite post_id.


    Without faith, nothing is possible. With it, nothing is impossible
    http://ilwebdifabio.it

  4. #4
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Se posti un dump delle tabelle (possibilmente con qualche record per provare il funzionamento) faccio un tentativo.

  5. #5
    Posts:
    Codice PHP:
    CREATE TABLE `posts` (
      `
    post_IDint(10unsigned NOT NULL auto_increment,
      `
    category_IDint(5unsigned NOT NULL default '0',
      `
    user_IDint(10unsigned NOT NULL default '0',
      `
    post_titletext NOT NULL,
      `
    post_preambletext NOT NULL,
      `
    post_contentlongtext NOT NULL,
      `
    post_datedatetime NOT NULL default '0000-00-00 00:00:00',
      `
    post_highlightedenum('n','y'NOT NULL default 'n',
      
    PRIMARY KEY  (`post_ID`),
      
    KEY `category_ID` (`category_ID`),
      
    KEY `user_ID` (`user_ID`)
    ENGINE=MyISAM DEFAULT CHARSET=utf8;

    -- 
    -- 
    Dumping data for table `posts`
    -- 

    INSERT INTO `postsVALUES (1083932'Primo in js''

    \r\nMorbi eros augue, [b]pretium[/b] in, faucibus in, placerat at, nisi. Aliquam erat volutpat. Donec et felis. [url="http://localhost/yasin/PHP2/site/simplogial_3P/uploaded/template.tar.gz"]Download[/url] nulla elit, mattis eu, bibendum eu, viverra id, est. Aliquam quis odio. Etiam consequat mi et sapien eleifend elementum. Quisque suscipit ultrices leo. Duis nec nibh. Pellentesque iaculis. Cras magna. Vestibulum porta ornare augue. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Curabitur ut neque id odio mattis mollis. [url="#"]Phasellus[/url] fermentum vulputate ipsum. Curabitur posuere purus sit amet purus. Donec sem turpis, rhoncus sed, rhoncus non, varius eget, elit. Pellentesque magna ante, aliquet vitae, volutpat ac, auctor sit amet, mi. Aliquam dignissim nulla vitae purus. Vivamus dui diam, blandit nec, tincidunt in, cursus ultricies, sapien. \r\nIn ornare. Aenean[url="#"]Curabitur[/url] congue, nunc id vulputate varius, arcu velit lacinia augue, in eleifend enim metus sed urna. Nulla facilisi. Aliquam nibh lorem, imperdiet ut, eleifend a, pellentesque in, nulla. Curabitur lobortis lorem a leo. Morbi auctor. Donec nunc ipsum, egestas nec, faucibus eget, euismod non, mi. Fusce placerat luctus metus. Aenean tempus diam in neque.[url="#"]Curabitur[/url] Praesent sit amet lacus vitae eros bibendum malesuada. Suspendisse potenti. Vivamus eu orci. Nullam lobortis enim vitae eros. Nunc convallis lorem sit amet quam. Nullam molestie mi ut purus. Pellentesque mi diam, volutpat id, viverra non, malesuada nec, odio. Nam accumsan, justo et mattis luctus, erat arcu hendrerit justo, sit amet commodo orci urna in mauris. Integer sodales. Integer sollicitudin. Sed orci. \r\n</p>'
    'Primo in js''2007-08-31 11:33:17''y');
    INSERT INTO `postsVALUES (1073921'Terzo in sql''

    \r\nMorbi eros augue, [b]pretium[/b] in, faucibus in, placerat at, nisi. Aliquam erat volutpat. Donec et felis. [url="http://localhost/yasin/PHP2/site/simplogial_3P/uploaded/template.tar.gz"]Download[/url] nulla elit, mattis eu, bibendum eu, viverra id, est. Aliquam quis odio. Etiam consequat mi et sapien eleifend elementum. Quisque suscipit ultrices leo. Duis nec nibh. Pellentesque iaculis. Cras magna. Vestibulum porta ornare augue. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Curabitur ut neque id odio mattis mollis. [url="#"]Phasellus[/url] fermentum vulputate ipsum. Curabitur posuere purus sit amet purus. Donec sem turpis, rhoncus sed, rhoncus non, varius eget, elit. Pellentesque magna ante, aliquet vitae, volutpat ac, auctor sit amet, mi. Aliquam dignissim nulla vitae purus. Vivamus dui diam, blandit nec, tincidunt in, cursus ultricies, sapien. \r\nIn ornare. Aenean[url="#"]Curabitur[/url] congue, nunc id vulputate varius, arcu velit lacinia augue, in eleifend enim metus sed urna. Nulla facilisi. Aliquam nibh lorem, imperdiet ut, eleifend a, pellentesque in, nulla. Curabitur lobortis lorem a leo. Morbi auctor. Donec nunc ipsum, egestas nec, faucibus eget, euismod non, mi. Fusce placerat luctus metus. Aenean tempus diam in neque.[url="#"]Curabitur[/url] Praesent sit amet lacus vitae eros bibendum malesuada. Suspendisse potenti. Vivamus eu orci. Nullam lobortis enim vitae eros. Nunc convallis lorem sit amet quam. Nullam molestie mi ut purus. Pellentesque mi diam, volutpat id, viverra non, malesuada nec, odio. Nam accumsan, justo et mattis luctus, erat arcu hendrerit justo, sit amet commodo orci urna in mauris. Integer sodales. Integer sollicitudin. Sed orci. \r\n</p>'
    'Terzo in sql''2007-08-31 11:32:25''y');
    INSERT INTO `postsVALUES (1053922'Primo in sql''

    \r\nMorbi eros augue, [b]pretium[/b] in, faucibus in, placerat at, nisi. Aliquam erat volutpat. Donec et felis. [url="http://localhost/yasin/PHP2/site/simplogial_3P/uploaded/template.tar.gz"]Download[/url] nulla elit, mattis eu, bibendum eu, viverra id, est. Aliquam quis odio. Etiam consequat mi et sapien eleifend elementum. Quisque suscipit ultrices leo. Duis nec nibh. Pellentesque iaculis. Cras magna. Vestibulum porta ornare augue. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Curabitur ut neque id odio mattis mollis. [url="#"]Phasellus[/url] fermentum vulputate ipsum. Curabitur posuere purus sit amet purus. Donec sem turpis, rhoncus sed, rhoncus non, varius eget, elit. Pellentesque magna ante, aliquet vitae, volutpat ac, auctor sit amet, mi. Aliquam dignissim nulla vitae purus. Vivamus dui diam, blandit nec, tincidunt in, cursus ultricies, sapien. \r\nIn ornare. Aenean[url="#"]Curabitur[/url] congue, nunc id vulputate varius, arcu velit lacinia augue, in eleifend enim metus sed urna. Nulla facilisi. Aliquam nibh lorem, imperdiet ut, eleifend a, pellentesque in, nulla. Curabitur lobortis lorem a leo. Morbi auctor. Donec nunc ipsum, egestas nec, faucibus eget, euismod non, mi. Fusce placerat luctus metus. Aenean tempus diam in neque.[url="#"]Curabitur[/url] Praesent sit amet lacus vitae eros bibendum malesuada. Suspendisse potenti. Vivamus eu orci. Nullam lobortis enim vitae eros. Nunc convallis lorem sit amet quam. Nullam molestie mi ut purus. Pellentesque mi diam, volutpat id, viverra non, malesuada nec, odio. Nam accumsan, justo et mattis luctus, erat arcu hendrerit justo, sit amet commodo orci urna in mauris. Integer sodales. Integer sollicitudin. Sed orci. \r\n</p>'
    'Primo in sql''2007-08-31 11:30:43''y');
    INSERT INTO `postsVALUES (1033912'quarto in php''quarto in php''quarto in php''2007-08-31 11:29:25''y');
    INSERT INTO `postsVALUES (1043912'Quinto in php''

    \r\nMorbi eros augue, [b]pretium[/b] in, faucibus in, placerat at, nisi. Aliquam erat volutpat. Donec et felis. [url="http://localhost/yasin/PHP2/site/simplogial_3P/uploaded/template.tar.gz"]Download[/url] nulla elit, mattis eu, bibendum eu, viverra id, est. Aliquam quis odio. Etiam consequat mi et sapien eleifend elementum. Quisque suscipit ultrices leo. Duis nec nibh. Pellentesque iaculis. Cras magna. Vestibulum porta ornare augue. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Curabitur ut neque id odio mattis mollis. [url="#"]Phasellus[/url] fermentum vulputate ipsum. Curabitur posuere purus sit amet purus. Donec sem turpis, rhoncus sed, rhoncus non, varius eget, elit. Pellentesque magna ante, aliquet vitae, volutpat ac, auctor sit amet, mi. Aliquam dignissim nulla vitae purus. Vivamus dui diam, blandit nec, tincidunt in, cursus ultricies, sapien. \r\nIn ornare. Aenean[url="#"]Curabitur[/url] congue, nunc id vulputate varius, arcu velit lacinia augue, in eleifend enim metus sed urna. Nulla facilisi. Aliquam nibh lorem, imperdiet ut, eleifend a, pellentesque in, nulla. Curabitur lobortis lorem a leo. Morbi auctor. Donec nunc ipsum, egestas nec, faucibus eget, euismod non, mi. Fusce placerat luctus metus. Aenean tempus diam in neque.[url="#"]Curabitur[/url] Praesent sit amet lacus vitae eros bibendum malesuada. Suspendisse potenti. Vivamus eu orci. Nullam lobortis enim vitae eros. Nunc convallis lorem sit amet quam. Nullam molestie mi ut purus. Pellentesque mi diam, volutpat id, viverra non, malesuada nec, odio. Nam accumsan, justo et mattis luctus, erat arcu hendrerit justo, sit amet commodo orci urna in mauris. Integer sodales. Integer sollicitudin. Sed orci. \r\n</p>'
    'Quinto in php''2007-08-31 11:29:48''n');
    INSERT INTO `postsVALUES (1063922'Secondo in sql''

    \r\nMorbi eros augue, [b]pretium[/b] in, faucibus in, placerat at, nisi. Aliquam erat volutpat. Donec et felis. [url="http://localhost/yasin/PHP2/site/simplogial_3P/uploaded/template.tar.gz"]Download[/url] nulla elit, mattis eu, bibendum eu, viverra id, est. Aliquam quis odio. Etiam consequat mi et sapien eleifend elementum. Quisque suscipit ultrices leo. Duis nec nibh. Pellentesque iaculis. Cras magna. Vestibulum porta ornare augue. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Curabitur ut neque id odio mattis mollis. [url="#"]Phasellus[/url] fermentum vulputate ipsum. Curabitur posuere purus sit amet purus. Donec sem turpis, rhoncus sed, rhoncus non, varius eget, elit. Pellentesque magna ante, aliquet vitae, volutpat ac, auctor sit amet, mi. Aliquam dignissim nulla vitae purus. Vivamus dui diam, blandit nec, tincidunt in, cursus ultricies, sapien. \r\nIn ornare. Aenean[url="#"]Curabitur[/url] congue, nunc id vulputate varius, arcu velit lacinia augue, in eleifend enim metus sed urna. Nulla facilisi. Aliquam nibh lorem, imperdiet ut, eleifend a, pellentesque in, nulla. Curabitur lobortis lorem a leo. Morbi auctor. Donec nunc ipsum, egestas nec, faucibus eget, euismod non, mi. Fusce placerat luctus metus. Aenean tempus diam in neque.[url="#"]Curabitur[/url] Praesent sit amet lacus vitae eros bibendum malesuada. Suspendisse potenti. Vivamus eu orci. Nullam lobortis enim vitae eros. Nunc convallis lorem sit amet quam. Nullam molestie mi ut purus. Pellentesque mi diam, volutpat id, viverra non, malesuada nec, odio. Nam accumsan, justo et mattis luctus, erat arcu hendrerit justo, sit amet commodo orci urna in mauris. Integer sodales. Integer sollicitudin. Sed orci. \r\n</p>'
    'Secondo in sql''2007-08-31 11:31:58''n');
    INSERT INTO `postsVALUES (1023912'terzo in php''terzo in php''terzo in php''2007-08-31 11:29:07''n');
    INSERT INTO `postsVALUES (1003912'primo in php''primo in php''primo in php''2007-08-31 11:28:21''n');
    INSERT INTO `postsVALUES (1013912'secondo in php''secondo in php''secondo in php''2007-08-31 11:28:46''y'); 
    Tags:
    Codice PHP:
    CREATE TABLE `tags` (
      `
    tag_IDint(10NOT NULL auto_increment,
      `
    tag_namevarchar(255NOT NULL default '',
      
    PRIMARY KEY  (`tag_ID`),
      
    UNIQUE KEY `tag_name` (`tag_name`)
    ENGINE=MyISAM DEFAULT CHARSET=utf8;

    -- 
    -- 
    Dumping data for table `tags`
    -- 

    INSERT INTO `tagsVALUES (34'Javascript');
    INSERT INTO `tagsVALUES (33'Css');
    INSERT INTO `tagsVALUES (32'Ajax');
    INSERT INTO `tagsVALUES (31'php mysql');
    INSERT INTO `tagsVALUES (30'php5'); 


    posts2tags :

    Codice PHP:
    CREATE TABLE `posts2tags` (
      `
    rel_IDint(10NOT NULL auto_increment,
      `
    tag_IDint(10NOT NULL default '0',
      `
    post_IDint(10NOT NULL default '0',
      
    PRIMARY KEY  (`rel_ID`)
    ENGINE=MyISAM DEFAULT CHARSET=utf8;

    -- 
    -- 
    Dumping data for table `posts2tags`
    -- 

    INSERT INTO `posts2tagsVALUES (5832103);
    INSERT INTO `posts2tagsVALUES (6130102);
    INSERT INTO `posts2tagsVALUES (6233101);
    INSERT INTO `posts2tagsVALUES (5433105);
    INSERT INTO `posts2tagsVALUES (6534100);
    INSERT INTO `posts2tagsVALUES (5334105);
    INSERT INTO `posts2tagsVALUES (5534104);
    INSERT INTO `posts2tagsVALUES (5230106);
    INSERT INTO `posts2tagsVALUES (5131106);
    INSERT INTO `posts2tagsVALUES (4932107);
    INSERT INTO `posts2tagsVALUES (4833107);
    INSERT INTO `posts2tagsVALUES (4632108);
    INSERT INTO `posts2tagsVALUES (4534108);
    INSERT INTO `posts2tagsVALUES (4731108);
    INSERT INTO `posts2tagsVALUES (5030107);
    INSERT INTO `posts2tagsVALUES (5633104);
    INSERT INTO `posts2tagsVALUES (5730104);
    INSERT INTO `posts2tagsVALUES (5930103);
    INSERT INTO `posts2tagsVALUES (6332101);
    INSERT INTO `posts2tagsVALUES (6430101);
    INSERT INTO `posts2tagsVALUES (6630100); 

    Grazie
    Without faith, nothing is possible. With it, nothing is impossible
    http://ilwebdifabio.it

  6. #6
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Sembra andare.
    codice:
    SELECT p.post_id, t.tag_name, t.tag_id
    FROM 
    (SELECT * from posts ORDER BY post_id DESC LIMIT 5) AS p
    INNER JOIN posts2tags AS r ON p.post_id = r.post_id
    INNER JOIN tags AS t ON t.tag_id = r.tag_id 
    ORDER BY POST_ID DESC,TAG_ID ASC

  7. #7
    Grande

    grazie tante
    se passi dalle mie parti (Liguria)
    hai una birra extra large pagata



    Without faith, nothing is possible. With it, nothing is impossible
    http://ilwebdifabio.it

  8. #8
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Il giorno che dovessi riscuotere tutte le birre finirei in coma etilico per un mese.
    Lo terrò presente.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.