recherche deux tables avec une seule requête???

  • Mozzi
  • Student
  • Student
  • No Avatar
  • Inscription: Aoû 19, 2004
  • Messages: 70
  • Status: Offline

Message Janvier 30th, 2010, 11:54 pm

Salut .. im nouveau codage relatif. et j'ai besoin d'aide.
J'ai 2 tables dans ma base de données .. ils ont les mêmes champs.

Je veux faire une recherche à la fois d'eux et retrouver les valeurs ..

Code: [ Select ]
`news` (
 `id` int(11) NOT NULL auto_increment,
 `heading` varchar(255) default NULL,
 `author` varchar(255) default NULL,
 `dates` date default NULL,
 `intro` longtext,
 `content` longtext,
 `picture` varchar(255) default NULL,
 `showpicture` varchar(255) default NULL,
 `pdf` varchar(255) default NULL,
 `showpdf` varchar(255) default NULL,
 `link` longtext,
  1. `news` (
  2.  `id` int(11) NOT NULL auto_increment,
  3.  `heading` varchar(255) default NULL,
  4.  `author` varchar(255) default NULL,
  5.  `dates` date default NULL,
  6.  `intro` longtext,
  7.  `content` longtext,
  8.  `picture` varchar(255) default NULL,
  9.  `showpicture` varchar(255) default NULL,
  10.  `pdf` varchar(255) default NULL,
  11.  `showpdf` varchar(255) default NULL,
  12.  `link` longtext,



Code: [ Select ]
`features` (
 `id` int(11) NOT NULL auto_increment,
 `heading` varchar(255) default NULL,
 `author` varchar(255) default NULL,
 `dates` date default NULL,
 `intro` longtext,
 `content` longtext,
 `picture` varchar(255) default NULL,
 `showpicture` varchar(255) default NULL,
 `pdf` varchar(255) default NULL,
 `showpdf` varchar(255) default NULL,
 `link` longtext,
  1. `features` (
  2.  `id` int(11) NOT NULL auto_increment,
  3.  `heading` varchar(255) default NULL,
  4.  `author` varchar(255) default NULL,
  5.  `dates` date default NULL,
  6.  `intro` longtext,
  7.  `content` longtext,
  8.  `picture` varchar(255) default NULL,
  9.  `showpicture` varchar(255) default NULL,
  10.  `pdf` varchar(255) default NULL,
  11.  `showpdf` varchar(255) default NULL,
  12.  `link` longtext,


C'est ce que j'avais à l'esprit .. que tous les champs sont les mêmes .. son juste les tables qui sont différents!

Code: [ Select ]
SELECT *
FROM news, features
WHERE heading LIKE %colname% or author LIKE %colname% or intro LIKE %colname% or content LIKE %colname% or link LIKE %colname%
ORDER BY dates ASC
  1. SELECT *
  2. FROM news, features
  3. WHERE heading LIKE %colname% or author LIKE %colname% or intro LIKE %colname% or content LIKE %colname% or link LIKE %colname%
  4. ORDER BY dates ASC
  • Anonymous
  • Bot
  • No Avatar
  • Inscription: 25 Feb 2008
  • Messages: ?
  • Loc: Ozzuland
  • Status: Online

Message Janvier 30th, 2010, 11:54 pm

  • SpooF
  • ٩๏̯͡๏۶
  • Bronze Member
  • Avatar de l’utilisateur
  • Inscription: Mai 22, 2004
  • Messages: 3415
  • Loc: Richland, WA
  • Status: Offline

Message Janvier 30th, 2010, 11:57 pm

Donc, votre essayer d'obtenir toutes les lignes de chaque table dans une seule requête? Y at-il une raison quelconque vous ne pouvez pas combiner les tables et ajouter un autre champ de dire si sa aa "nouvelles" ou "feature"?
#define NULL (::rand() % 2)
  • nexuslite
  • Newbie
  • Newbie
  • No Avatar
  • Inscription: Fév 11, 2010
  • Messages: 10
  • Loc: Keizer, OR
  • Status: Offline

Message Février 11th, 2010, 8:10 am

Si vous n'avez pas besoin d'un id pour une raison quelconque, vous pouvez créer une table temporaire et insérer les deux tableaux en elle.

Je créer 2 tables un nommé table1 et un nommé table2 avec le code suivant:

Code: [ Select ]
CREATE TABLE table (
 ID int(10) unsigned NOT NULL AUTO_INCREMENT,
 column1 int(10) unsigned NOT NULL,
 column2 int(10) unsigned NOT NULL,
 PRIMARY KEY (ID)
);
  1. CREATE TABLE table (
  2.  ID int(10) unsigned NOT NULL AUTO_INCREMENT,
  3.  column1 int(10) unsigned NOT NULL,
  4.  column2 int(10) unsigned NOT NULL,
  5.  PRIMARY KEY (ID)
  6. );


Puis, en PHP / SQL-je créer une table temporaire et importer les deux tableaux en elle sans le champ id. Après cela, il vous suffit de sélectionner dans la table temporaire qui contient les données des deux tableaux.

Code: [ Select ]
$DBLink = mysql_connect('localhost', 'root', '');
mysql_select_db('test_db');

/* create temporary table */
$query = "CREATE TEMPORARY TABLE temporary_table ( column1 int(10) unsigned NOT NULL, column2 int(10) unsigned NOT NULL)";
mysql_query($query);

/* insert table1 into temporary table */
$query = "INSERT INTO combined_table (column1, column2) SELECT column1, column2 FROM table1";
mysql_query($query);

/* insert table2 into temporary table */
$query = "INSERT INTO temporary_table (column1, column2) SELECT column1, column2 FROM table2";
mysql_query($query);

/* select your data from temporary table */
$query = "SELECT * FROM temporary_table";
$result = mysql_query($query);
if (is_resource($result)) {
    while ($row = mysql_fetch_array($result)) {
        echo $row['column1'].', '.$row['column2'].'<br/>';
    }
}
  1. $DBLink = mysql_connect('localhost', 'root', '');
  2. mysql_select_db('test_db');
  3. /* create temporary table */
  4. $query = "CREATE TEMPORARY TABLE temporary_table ( column1 int(10) unsigned NOT NULL, column2 int(10) unsigned NOT NULL)";
  5. mysql_query($query);
  6. /* insert table1 into temporary table */
  7. $query = "INSERT INTO combined_table (column1, column2) SELECT column1, column2 FROM table1";
  8. mysql_query($query);
  9. /* insert table2 into temporary table */
  10. $query = "INSERT INTO temporary_table (column1, column2) SELECT column1, column2 FROM table2";
  11. mysql_query($query);
  12. /* select your data from temporary table */
  13. $query = "SELECT * FROM temporary_table";
  14. $result = mysql_query($query);
  15. if (is_resource($result)) {
  16.     while ($row = mysql_fetch_array($result)) {
  17.         echo $row['column1'].', '.$row['column2'].'<br/>';
  18.     }
  19. }


Probablement une façon lente à faire, mais c'est mai résoudre le problème.

Afficher de l'information

  • Total des messages de ce sujet: 3 messages
  • Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 136 invités
  • Vous ne pouvez pas poster de nouveaux sujets
  • Vous ne pouvez pas répondre aux sujets
  • Vous ne pouvez pas éditer vos messages
  • Vous ne pouvez pas supprimer vos messages
  • Vous ne pouvez pas joindre des fichiers
 
 

© 2011 Unmelted, LLC. Ozzu® est une marque déposée de Unmelted, LLC