Go Back   vb.org Archive > vBulletin 3 Discussion > vB3 Programming Discussions
  #1  
Old 07-08-2009, 07:53 AM
Falcon Capt Falcon Capt is offline
 
Join Date: May 2006
Location: U.S.
Posts: 123
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default Need MySQL Query Help

I am trying to find users who have had one subscription but not the other.

I am using this query to locate one of the subscription types:

SELECT username
FROM subscriptionlog
LEFT JOIN user ON (user.userid = subscriptionlog.userid)
WHERE subscriptionid = 6 AND status = 0 AND usergroupid = 2

Now out of this group I need to find ONLY the users who have NOT had subscriptionid = 1.

Basically, if there userid exists in subscriptionlog more than once (indicating more than one subscription has existed for the user) I don't want the username returned. ONLY users who have had subscriptionid 6 and NOT 1.

Any help would be greatly appreciated!
Reply With Quote
  #2  
Old 07-08-2009, 08:50 AM
ranz ranz is offline
 
Join Date: Dec 2005
Posts: 83
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

...
WHERE subscriptionid = 6 AND subscriptionid <> 1 AND status = 0 AND usergroupid =2

should do it.
Reply With Quote
  #3  
Old 07-08-2009, 12:50 PM
Falcon Capt Falcon Capt is offline
 
Join Date: May 2006
Location: U.S.
Posts: 123
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by ranz View Post
...
WHERE subscriptionid = 6 AND subscriptionid <> 1 AND status = 0 AND usergroupid =2

should do it.
I had already tried that exact solution but the problem is the 2 subscriptions are on different rows. So using the above there will never be a subscriptionid of 6 & 1 on the same row, so the above returns EVERYONE who has had a subscriptionid = 6 regardless of whether they have had a subscriptionid = 1 or not. I need to have it not return people who have had both 1 & 6 and only return those who have only had subscriptionid = 6.

I need a query that checks for multiple entires (row) having the same userid and different subscriptionid's and not return a result for userid's that have more than one entry (row).
Reply With Quote
  #4  
Old 07-09-2009, 06:35 AM
ranz ranz is offline
 
Join Date: Dec 2005
Posts: 83
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

OPTION1: Do some code to achieve this. You will need to use the result of one query (and it's rowset) to produce the internal result of the other.

you can throw the recordid into the internal query from the external one - which will give you your results your after.

some pseudocode (do not use example only):
PHP Code:
$resultouter $db->query_read("
    SELECT id, username
    FROM subscriptionlog
    LEFT JOIN user ON (user.userid = subscriptionlog.userid)
    WHERE subscriptionid = 6 AND status = 0 AND usergroupid = 2
"
);

while( 
$rowouter $db->fetch_array($resultouter){

    
$resultinner $db->query_read("
        SELECT username
        FROM subscriptionlog
        LEFT JOIN user ON (user.userid = subscriptionlog.userid)
        WHERE subscriptionid = 1 AND status = 0 AND usergroupid = 2
        AND subscriptionlog.id = " 
$rowouter['id'] . "
    "
);
    
    while( 
$rowinner $db->fetch_array($resultinner){
    
        
// do something here with the query result? populate an array?
    
    
}
    
$db->free_result($resultinner);

}
$db->free_result($resultouter); 
OPTION2: You could also look at INNER_JOIN and OUTER_JOIN complex queries, it may provide some assistance. Visit mysql site and lookup INNER_JOIN.

OPTION 3: You could look at SELECT ... WHERE field IN(SELECT ... WHERE) queries.

hope this helps.
Reply With Quote
Reply

Thread Tools
Display Modes

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 07:44 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.04599 seconds
  • Memory Usage 2,189KB
  • 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
  • (1)bbcode_php
  • (1)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (4)post_thanks_box
  • (4)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (4)post_thanks_postbit_info
  • (4)postbit
  • (4)postbit_onlinestatus
  • (4)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