Avatar billede whyme Nybegynder
14. november 2004 - 16:36 Der er 4 kommentarer og
2 løsninger

Hjælp med at lave en inner join eller hvad det kaldes

Hej Eksperter,

Jeg har følgende 2 ting:

$get_auctions2 = mysql_query("SELECT * FROM auc_product WHERE auction_end < $tid ORDER BY auction_end ASC LIMIT 0,1");

Men vil gerne have at den gør lidt ligesom det jeg skriver nu:
mysql_query("SELECT * FROM auc_product WHERE auction_end < $tid *og hvor product_id fra tabellen auc_bid_history er ens med member_id'et $_COOKIE[usercookie]* ORDER BY auction_end ASC LIMIT 0,1");

Hvor:
*og hvor product_id fra tabellen auc_bid_history er ens med member_id'et $_COOKIE[usercookie]*

er noget jeg har skrevet, men jeg ved ikke hvordan man tager data/sammensætter 2 tabeller osv. i én sql query.

Er det noget, som i kan hjælpe mig med?

Jeg tror vidst det hedder noget med inner join osv.

På forhånd mange tak
Avatar billede baitianlong Nybegynder
14. november 2004 - 16:47 #1
Prøv med:

SELECT * FROM auc_product, auc_bid_history WHERE auc_product.auction_end < $tid AND auc_bid_history.product_id='$_COOKIE[usercookie]' ORDER BY auc_product.auction_end ASC LIMIT 0,1

Det er dog blot et forsøg her :)
Avatar billede baitianlong Nybegynder
14. november 2004 - 16:48 #2
..ellers kan man lære noget om det her:
http://www.w3schools.com/sql/sql_join.asp
Avatar billede majkat Nybegynder
14. november 2004 - 16:50 #3
SELECT *
FROM auc_product, auc_bid_history
WHERE auction_end < $tid
  AND auc_bid_history.product_id = auc_product.product_ID
  AND auc_product.product_ID = $_COOKIE[usercookie]
ORDER BY auction_end ASC LIMIT 0,1
Avatar billede whyme Nybegynder
14. november 2004 - 16:55 #4
Har prøvet majkat og legende.dk's løsninger.

De selecter ingen ting jeg har. og der kommer ingen fejl med mysql_error()

Jeg prøver lige at poste tabellerne, kan være jeg har komme til at skrive noget som kan misforståes.
Avatar billede whyme Nybegynder
14. november 2004 - 17:00 #5
// Dette er "byde tabellen" på auktioner jeg har lavet:

CREATE TABLE `auc_bid_history` (
  `id` int(11) NOT NULL auto_increment,
  `product_id` int(11) NOT NULL default '0',
  `member_id` int(11) NOT NULL default '0',
  `price` varchar(10) NOT NULL default '',
  `bid_time` bigint(20) NOT NULL default '0',
  PRIMARY KEY  (`id`)
) TYPE=MyISAM AUTO_INCREMENT=17 ;

// Dette er tabellen som medlemmerne er i.

CREATE TABLE `auc_members` (
  `member_id` int(11) NOT NULL auto_increment,
  `nick` varchar(20) NOT NULL default '',
  `password` varchar(50) NOT NULL default '',
  `firstname` varchar(30) NOT NULL default '',
  `lastname` varchar(30) NOT NULL default '',
  `street_address` varchar(50) NOT NULL default '',
  `zip` smallint(5) NOT NULL default '0',
  `email` varchar(50) NOT NULL default '',
  `phone` varchar(12) NOT NULL default '',
  `mobile` varchar(12) NOT NULL default '',
  `created` bigint(20) NOT NULL default '0',
  PRIMARY KEY  (`member_id`)
) TYPE=MyISAM AUTO_INCREMENT=15 ;

// Dette er auktions tabellen med auktionerne i.

CREATE TABLE `auc_product` (
  `product_id` int(11) NOT NULL auto_increment,
  `cat_id` int(11) NOT NULL default '0',
  `heading` varchar(100) NOT NULL default '',
  `description` text NOT NULL,
  `auction_end` bigint(20) NOT NULL default '0',
  `ship_id` int(11) NOT NULL default '0',
  `bid_price` varchar(10) NOT NULL default '10',
  PRIMARY KEY  (`product_id`)
) TYPE=MyISAM AUTO_INCREMENT=26 ;


// det jeg vil, er at jeg vil finde alle de auktioner fra den person som er logget ind (er en cookie ved navn $_COOKIE[usercookie] som indeholder member_id'et), som personen har vundet, ved at kigge i auc_bid_history og tage det produkt som har samme member_id som personen som er logget ind, og tage den pris som er højest (order by price desc limit 0,1) og udskrive.

Hvis der er noget som kan gøre en i tvivl, må i lige sige til.

mange tak.
Avatar billede whyme Nybegynder
21. november 2004 - 03:22 #6
lukker så
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
Computerworld tilbyder specialiserede kurser i database-management

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