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

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