Avatar billede dcheng Novice
11. august 2005 - 00:02 Der er 13 kommentarer og
1 løsning

MySQL, merge 2 tabeller! hvordan?

Hvis nu jeg har 2 tabeller som har samme struktur. Hvoraf kun data og tabellens navn ikke er ens.

Er det så muligt at SELECT begge tabellers indhold med 1 query?

min ser således ud nu:
mysql_query("SELECT * FROM Vare WHERE VareID='$product'");

men hvis nu jeg også har en tabel som fx. hedder "SpecialVare" kan jeg så i den query SELECT begge tabellers data?
Avatar billede arne_v Ekspert
11. august 2005 - 00:09 #1
er det:

mysql_query("(SELECT * FROM Vare WHERE VareID='$product') UNION (SELECT * FROM SpecialVare WHERE VareID='$product')");

du leder efter ?
Avatar billede ksoren Nybegynder
11. august 2005 - 00:09 #2
du kan sætte den sammen med union

select * from tabel1 union all select * from tabe2
Avatar billede dcheng Novice
11. august 2005 - 14:49 #3
Denne virker ikke
(SELECT * FROM Vare WHERE VareID='".$product."') UNION ALL (SELECT * FROM SpecialVare WHERE VareID='".$product."')

Denne virker
(SELECT Salgspris, Indkoebspris FROM Vare WHERE VareID='".$vare_id."') UNION ALL (SELECT Salgspris, Indkoebspris FROM SpecialVare WHERE VareID='".$vare_id."')

Er det fordi man ikke må bruge * ???
Avatar billede ksoren Nybegynder
11. august 2005 - 15:25 #4
du må kun bruge * hvis der er --præcis-- det samme antal felter i begge tabeller
Avatar billede dcheng Novice
11. august 2005 - 18:52 #5
ok

Lige et test script, hvorfor virker det ikke? 'Navn' er 'varchar(35)' i begge tabeller
---------------------------------
include "sec/connection.php";
$query = "(SELECT Navn FROM Vare) UNION ALL (SELECT Navn FROM pc_items)";
$result = mysql_query($query);
$count = count($result);
$row = mysql_fetch_array($result);  <-- line 11
echo $count;
echo $row[0];
---------------------------------

Warning: Supplied argument is not a valid MySQL result resource in /domains/www.labtech.dk/www/test.php on line 11
1
Avatar billede dcheng Novice
11. august 2005 - 18:53 #6
Det skal i øvrigt bruges på en While loop
Avatar billede arne_v Ekspert
11. august 2005 - 18:56 #7
smæk lige en or die på mysq_query og se hvad fejlen er
Avatar billede dcheng Novice
11. august 2005 - 19:05 #8
Den siger:

You have an error in your SQL syntax near '(SELECT Navn FROM Vare) UNION ALL (SELECT Navn FROM pc_items)' at line 1
Avatar billede arne_v Ekspert
11. august 2005 - 19:07 #9
Hvilken version af MySQL ?

(UNION er først supporteret i 4.0)
Avatar billede dcheng Novice
11. august 2005 - 19:19 #10
OK DET ER RIGTIG TRÆLS !!! 3.23.49

Er der eller andre måder? Det er Scannet som er mit host
Avatar billede arne_v Ekspert
11. august 2005 - 19:20 #11
så tror jeg at du hænger på 2 queries

(hvorfor kører de med så ældgammel en MySQL ?)
Avatar billede dcheng Novice
11. august 2005 - 19:22 #12
Aner det ikke jeg ringer ind i morgenen, de har ikke nogle teknikkere som ved noget på den her tid af dagen siger de.
Avatar billede arne_v Ekspert
03. september 2005 - 18:23 #13
kommet videre ?
Avatar billede dcheng Novice
28. december 2005 - 04:41 #14
Scannet har ikke planer om at opgradere til v4

LUKKER
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester