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

Reply
 
Thread Tools Display Modes
  #1  
Old 06-12-2007, 08:29 PM
bobdell01 bobdell01 is offline
 
Join Date: May 2007
Posts: 7
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default Column 'displaygroupid' in field list is ambiguous in showthread.php

If someone could help me, I sure would appreciate it.

I added a column to table post: post.to_user (btw, values are stored correctly)
which is a userid

I added this plugin to hook: showthread_query
Code:
$hook_query_fields = ",user.username AS to_username";
$hook_query_joins = "LEFT JOIN " . TABLE_PREFIX . "user AS u ON(u.userid = post.to_user)";
The line:
Code:
$hook_query_joins = "LEFT JOIN " . TABLE_PREFIX . "user AS u ON(u.userid = post.to_user)";
Seems to be causing the error: "Column 'displaygroupid' in field list is ambiguous"

I previously ran the following query in phpMyAdmin, and got the correct results:
Code:
SELECT user.username AS to_username
FROM post
LEFT JOIN user ON ( user.userid = post.to_user )
WHERE post.postid = 173
What am I doing wrong?

(I'm running 3.6.5)
Reply With Quote
  #2  
Old 06-13-2007, 12:32 AM
Eikinskjaldi's Avatar
Eikinskjaldi Eikinskjaldi is offline
 
Join Date: Feb 2006
Location: Hell, never looked better
Posts: 572
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I am guessing the query that comes out of your hook looks absolutely nothing like the query you ran in phpmyadmin.

for one thing, if you alias a table, you have to always refer to that table by the alias

,user.username AS to_username";
"LEFT JOIN " . TABLE_PREFIX . "user AS u ON(u.userid = post.to_user)";

By rights this query should complain "unknown column user.username in field list"

I am guessing, however, that user is being called again somewhere else in the query so you have a user table and a user as u table and thereby pulling duplicate rows.

It's just a guess though, what is really needed is the actual query your hook generates.
Reply With Quote
  #3  
Old 06-13-2007, 12:00 PM
bobdell01 bobdell01 is offline
 
Join Date: May 2007
Posts: 7
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Database error in vBulletin 3.6.5:
Invalid SQL:

Quote:
SELECT
post.*, post.username AS postusername, post.ipaddress AS ip, IF(post.visible = 2, 1, 0) AS isdeleted,
user.*, userfield.*, usertextfield.*,
icon.title as icontitle, icon.iconpath,

deletionlog.userid AS del_userid, deletionlog.username AS del_username, deletionlog.reason AS del_reason,
editlog.userid AS edit_userid, editlog.username AS edit_username, editlog.dateline AS edit_dateline,
editlog.reason AS edit_reason,
postparsed.pagetext_html, postparsed.hasimages,
sigparsed.signatureparsed, sigparsed.hasimages AS sighasimages,
sigpic.userid AS sigpic, sigpic.dateline AS sigpicdateline, sigpic.width AS sigpicwidth, sigpic.height AS sigpicheight,
IF(displaygroupid=0, user.usergroupid, displaygroupid) AS displaygroupid, infractiongroupid

,user.username AS to_username
FROM post AS post
LEFT JOIN user AS user ON(user.userid = post.userid)
LEFT JOIN userfield AS userfield ON(userfield.userid = user.userid)
LEFT JOIN usertextfield AS usertextfield ON(usertextfield.userid = user.userid)
LEFT JOIN icon AS icon ON(icon.iconid = post.iconid)

LEFT JOIN deletionlog AS deletionlog ON(post.postid = deletionlog.primaryid AND deletionlog.type = 'post')
LEFT JOIN editlog AS editlog ON(editlog.postid = post.postid)
LEFT JOIN postparsed AS postparsed ON(postparsed.postid = post.postid AND postparsed.styleid = 1 AND postparsed.languageid = 1)
LEFT JOIN sigparsed AS sigparsed ON(sigparsed.userid = user.userid AND sigparsed.styleid = 1 AND sigparsed.languageid = 1)
LEFT JOIN sigpic AS sigpic ON(sigpic.userid = post.userid)
LEFT JOIN user AS u ON(u.userid = post.to_user)
WHERE post.postid IN (0,127,128,131,133,135,136,175,176,177,178,179,180 )
ORDER BY post.dateline;
MySQL Error : Column 'displaygroupid' in field list is ambiguous Error Number : 1052
Date : Tuesday, June 12th 2007 @ 03:41:55 PM
Script : http://www.northern-ny.net/kestrel/vbtest/showthread.php?t=6
Referrer : http://www.northern-ny.net/kestrel/vbtest/forumdisplay.php?f=2
IP Address : 74.78.5.54
Username : bobdell
Classname : vb_database

If I change the line:
Quote:
LEFT JOIN user AS u ON(u.userid = post.to_user)
to
Quote:
LEFT JOIN user AS user ON(user.userid = post.to_user)
I get the following error:

Quote:
Database error in vBulletin 3.6.5:
Invalid SQL:

SELECT
post.*, post.username AS postusername, post.ipaddress AS ip, IF(post.visible = 2, 1, 0) AS isdeleted,
user.*, userfield.*, usertextfield.*,
icon.title as icontitle, icon.iconpath,

deletionlog.userid AS del_userid, deletionlog.username AS del_username, deletionlog.reason AS del_reason,
editlog.userid AS edit_userid, editlog.username AS edit_username, editlog.dateline AS edit_dateline,
editlog.reason AS edit_reason,
postparsed.pagetext_html, postparsed.hasimages,
sigparsed.signatureparsed, sigparsed.hasimages AS sighasimages,
sigpic.userid AS sigpic, sigpic.dateline AS sigpicdateline, sigpic.width AS sigpicwidth, sigpic.height AS sigpicheight,
IF(displaygroupid=0, user.usergroupid, displaygroupid) AS displaygroupid, infractiongroupid

,user.username AS to_username
FROM post AS post
LEFT JOIN user AS user ON(user.userid = post.userid)
LEFT JOIN userfield AS userfield ON(userfield.userid = user.userid)
LEFT JOIN usertextfield AS usertextfield ON(usertextfield.userid = user.userid)
LEFT JOIN icon AS icon ON(icon.iconid = post.iconid)

LEFT JOIN deletionlog AS deletionlog ON(post.postid = deletionlog.primaryid AND deletionlog.type = 'post')
LEFT JOIN editlog AS editlog ON(editlog.postid = post.postid)
LEFT JOIN postparsed AS postparsed ON(postparsed.postid = post.postid AND postparsed.styleid = 1 AND postparsed.languageid = 1)
LEFT JOIN sigparsed AS sigparsed ON(sigparsed.userid = user.userid AND sigparsed.styleid = 1 AND sigparsed.languageid = 1)
LEFT JOIN sigpic AS sigpic ON(sigpic.userid = post.userid)
LEFT JOIN user AS user ON(user.userid = post.to_user)
WHERE post.postid IN (0,127,128,131,133,135,136,175,176,177,178,179,180 )
ORDER BY post.dateline;

MySQL Error : Not unique table/alias: 'user'
Error Number : 1066
Date : Wednesday, June 13th 2007 @ 09:11:51 AM
Script : http://www.northern-ny.net/kestrel/v...thread.php?t=6
Referrer : http://www.northern-ny.net/kestrel/v...isplay.php?f=2
IP Address : 74.78.5.54
Username : bobdell
Classname : vb_database

So I guess my issue is how to include a WHERE/ON that will retrieve user.username AS to_username WHERE user.userid=post.to_user

OK, forget it. I'm going to do this a different way. Probably execute a query in hook showthread_query, or add a new field (very inelegant) to table post.

I've put in a request to add a hook after the WHERE clause to allow subqueries.
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 09:08 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.03396 seconds
  • Memory Usage 2,197KB
  • Queries Executed 13 (?)
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
  • (3)bbcode_code
  • (4)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (3)post_thanks_box
  • (3)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (3)post_thanks_postbit_info
  • (3)postbit
  • (3)postbit_onlinestatus
  • (3)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_postinfo_query
  • fetch_postinfo
  • 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