bobdell01
06-12-2007, 08:29 PM
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
$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:
$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:
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)
Eikinskjaldi
06-13-2007, 12:32 AM
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.
bobdell01
06-13-2007, 12:00 PM
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 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 (http://www.northern-ny.net/kestrel/vbtest/showthread.php?t=6)
Referrer : http://www.northern-ny.net/kestrel/vbtest/forumdisplay.php?f=2 (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:
LEFT JOIN user AS u ON(u.userid = post.to_user)
to
LEFT JOIN user AS user ON(user.userid = post.to_user)
I get the following error:
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/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
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.
vBulletin® v3.8.12 by vBS, Copyright ©2000-2025, vBulletin Solutions Inc.