Russell
Russell

Reputation: 45

MySQL 1052 Column 'userid' in field list is ambiguous

I'm not experienced in DB query, but I'm trying to get this data from MySQL:

$query->select(array($db->quoteName('userid')));
$query->select(' DATEDIFF(expires, now()) as dayleft');
$query->from($db->quoteName('product_order_status'));
$query->where($db->quoteName('userid') . ' LIKE '. $userID);
$query->where($db->quoteName('active') . ' LIKE '. '1');
$query->from($db->quoteName('product_orders'));
$query->where($db->quoteName('processor') . ' LIKE '. 'paypal');

What I'm trying to get is-

  1. From product_order_status table

    • Get date range - Working
    • Get orders with 'active' field value '1' for current user - Working
  2. From product_orders table

    • Get payment process from 'process' field where value is 'paypal'. - When I add this query it's not working and showing error: 1052 Column 'userid' in field list is ambiguous

How can I make this query properly so I can get Active Orders which processed by PayPal for current logged in user?

Upvotes: 2

Views: 513

Answers (1)

Nicholas Summers
Nicholas Summers

Reputation: 4756

I am not familiar with the PHP Library you are using to generate these queries, but your answer may look something like this:

$query->select(array($db->quoteName('product_order_status.userid')));
$query->select(' DATEDIFF(expires, now()) as dayleft');
$query->from($db->quoteName('product_order_status'));
$query->where($db->quoteName('product_order_status.userid') . ' LIKE "'. $userID . '"');
$query->where($db->quoteName('active') . ' LIKE '. '1');
$query->from($db->quoteName('product_orders'));
$query->where($db->quoteName('processor') . ' LIKE '. '"paypal"');

Or possibly this:

$query->select(array('`product_order_status`.`userid`'));
$query->select(' DATEDIFF(expires, now()) as dayleft');
$query->from($db->quoteName('product_order_status'));
$query->where('`product_order_status`.`userid`' . ' LIKE "'. $userID . '"');
$query->where($db->quoteName('active') . ' LIKE '. '1');
$query->from($db->quoteName('product_orders'));
$query->where($db->quoteName('processor') . ' LIKE '. '"paypal"');

Upvotes: 1

Related Questions