Go Back   vb.org Archive > vBulletin 3 Discussion > vB3 Programming Discussions
FAQ Community Calendar Today's Posts Search

Reply
 
Thread Tools Display Modes
  #1  
Old 09-24-2007, 12:46 PM
selwonk's Avatar
selwonk selwonk is offline
 
Join Date: Jul 2005
Location: Manchester, UK
Posts: 17
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default INNER JOIN query

Hi folks

Apologies in advance if this has been covered - I couldn't find the answer having done a bit of searching...

I run vBadvanced and I want to produce a thank you box on the front page which shows the latest 10 positive reputation comments. The idea is to promote the reputation system and give people added incentive to give and receive rep points

The information I want is in the reputation and user table. I want to get the following fields:

reputation.postid
reputation.userid
reputation.whoadded
reputation.reason
user.username

I've got this working with the following query:
Code:
SELECT
	reputation.postid, 
	reputation.userid, 
	reputation.whoadded,
	reputation.reason,
	user.username
FROM
	reputation
INNER JOIN
	user
ON
	reputation.userid=user.userid
WHERE
	reputation.reputation >= 1 AND
	reputation.reason <> ''
ORDER BY
	reputation.dateline DESC
LIMIT 10;
However, I would also like to map reputation.whoadded to user.username as well. Is it possible to do two INNER JOINs to get this information?

I'd be very grateful of any advice. I'm not feeling well today, and my brain hurts

Thanks in advance...
Reply With Quote
  #2  
Old 09-24-2007, 03:23 PM
Farcaster Farcaster is offline
 
Join Date: Dec 2005
Posts: 386
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by selwonk View Post
However, I would also like to map reputation.whoadded to user.username as well. Is it possible to do two INNER JOINs to get this information?

I'd be very grateful of any advice. I'm not feeling well today, and my brain hurts

Thanks in advance...
Yes, it is possible, you just need to use a table alias. So your join would look like this example:

[SQL]INNER JOIN user userwho ON userwho.userid = reputation.whoadded[/SQL]

And in your select, you'd reference it by userwho.username
Reply With Quote
  #3  
Old 09-24-2007, 05:38 PM
Paul M's Avatar
Paul M Paul M is offline
 
Join Date: Sep 2004
Location: Nottingham, UK
Posts: 23,748
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

It's good practice to use 'AS' (INNER JOIN user AS userwho .....).
Reply With Quote
  #4  
Old 09-24-2007, 05:46 PM
Farcaster Farcaster is offline
 
Join Date: Dec 2005
Posts: 386
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Paul M View Post
It's good practice to use 'AS' (INNER JOIN user AS userwho .....).
It may make it slightly more readable if that is the format you are used to using, but I find it to be superfluous and I usually omit it.
Reply With Quote
  #5  
Old 09-25-2007, 07:42 AM
selwonk's Avatar
selwonk selwonk is offline
 
Join Date: Jul 2005
Location: Manchester, UK
Posts: 17
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Ok folks - thanks for that. I'll give it a go and report back

Thank you

--------------- Added at 12:12 ---------------

Thanks chaps - that gave me what I needed. The resultant query looks like this:
Code:
SELECT
	reputation.postid,
	reputation.userid,
	reputation.whoadded,
	reputation.reason,
	user.username,
	userwho.username AS usernamefrom

FROM
	reputation

INNER JOIN
	(user INNER JOIN user AS userwho ON reputation.userid=user.userid) ON reputation.whoadded=userwho.userid

WHERE
	reputation.reputation >= 1 AND
	reputation.reason <> ''

ORDER BY
	reputation.dateline DESC
LIMIT 10;
Thanks again!
Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 10:19 PM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.09372 seconds
  • Memory Usage 2,198KB
  • Queries Executed 11 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)ad_showthread_beforeqr
  • (1)ad_showthread_firstpost
  • (1)ad_showthread_firstpost_sig
  • (1)ad_showthread_firstpost_start
  • (2)bbcode_code
  • (2)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (5)post_thanks_box
  • (5)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (5)post_thanks_postbit_info
  • (5)postbit
  • (5)postbit_onlinestatus
  • (5)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available:
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files:
  • ./showthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_post_thanks.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showthread_start
  • showthread_getinfo
  • forumjump
  • showthread_post_start
  • showthread_query_postids
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete