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
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 :)
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
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.
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.