2014-02-02 2 views
0

Вот мой код, который у меня есть, и я не могу понять, почему следующий код возвращает ошибку. Операнд должен содержать 1 столбец. Я знаю, что оба запроса работают независимо от запроса, который у меня ниже. Любая помощь будет оцененаЯ получаю ошибку Операнд должен содержать 1 столбец

SELECT * 
FROM 2014_summary, 2014_profiles 
WHERE 2014_summary.player_id = 2014_profiles.player_id AND tournament_id = 'bec904c4-b2a3-4eba-a2bc-335aca680a40' AND 2014_summary.player_id 
NOT IN 
(SELECT 
    T1.*, 
    T2.player_id as primary_player_id 
FROM (SELECT id, lead_id, form_id, MAX(case when field_number = 1 then value end) display_name, 
    MAX(case when field_number = 7 then value end) email, 
    MAX(case when field_number = 6 then value end) tournament_name, 
    MAX(case when field_number = 3 then value end) primary_golfer, 
    MAX(case when field_number = 4 then value end) backup_golfer, 
    MAX(case when field_number = 5 then value end) date, 
    MAX(case when field_number = 8 then value end) tournament_id 
FROM `wp_rg_lead_detail` 
GROUP BY lead_id)T1 
INNER JOIN (SELECT CONCAT(first_name, ' ', last_name) as player_name, player_id FROM 2014_profiles)T2 ON T1.primary_golfer = T2.player_name 
WHERE display_name = "Hosker" AND tournament_id != 'bec904c4-b2a3-4eba-a2bc-335aca680a40') 
ORDER BY (last_name) ASC 
+0

А где вы получите сообщение об ошибке? Добавьте полное сообщение об ошибке. –

+0

это не дает мне определенную строку, NOT IN - это новое дополнение к запросу, чтобы присоединиться к ним вместе – hosker

+0

И каково полное сообщение об ошибке? Он начинается с * у вас есть ошибка в вашем синтаксисе sql ... * –

ответ

0

Ваш not in является:

2014_summary.player_id NOT IN 
    (SELECT T1.*, T2.player_id as primary_player_id 

MySQL не знает, какой столбец использовать в select для сравнения с player_id. Поэтому он возвращает ошибку. Фактически, это стандартная функциональность SQL ANSI, и все базы данных работают таким образом. Подзапрос в in должен возвращать только один столбец.

Я думаю, что вы хотите:

2014_summary.player_id NOT IN 
    (SELECT TT2.player_id 
    . . . 
+0

Это сработало для меня. Спасибо, ваша помощь очень ценится. – hosker