php - SQL error when i want comparate values of two query SQL
The idea is that I would like to gather several table values ??�??�in a column named "entrcod", and then have them compared to another query I am trying in my join query.
AND if a value exists in the first request and in the second it sends me the duplicate
CODE WITHOUT ERROR BUT DONT HAVE ALL VALUES I WANT
SELECT entrcod FROM marchelot WHERE marcod = 494128
AND entrcod IN
(SELECT entrcod FROM prospectuserclient
WHERE procod = 20347 AND usercod = '001'
UNION
SELECT betcod
FROM prospectuserclient
WHERE procod = 20347 AND usercod = '001'
UNION
SELECT buccod
FROM prospectuserclient
WHERE procod = 20347 AND usercod = '001'
UNION
SELECT ouvrcod
FROM prospectuserclient
WHERE procod = 20347 AND usercod = '001'
UNION
SELECT oeuvcod
FROM prospectuserclient
WHERE procod = 20347 AND usercod = '001')
CODE WITH INFORMATION I WANT , BUT WITH ERROR
SELECT entrcod FROM marchelot WHERE marcod = 494128
UNION
select buccod as entrcod from marchebuc where marcod = 494128
UNION
select ouvrcod as entrcod from marcheouvrage where marcod = 494128
UNION
select oeuvcod as entrcod from marcheoeuvre where marcod = 494128
AND entrcod IN
(SELECT entrcod FROM prospectuserclient
WHERE procod = 20347 AND usercod = '001'
UNION
SELECT betcod
FROM prospectuserclient
WHERE procod = 20347 AND usercod = '001'
UNION
SELECT buccod
FROM prospectuserclient
WHERE procod = 20347 AND usercod = '001'
UNION
SELECT ouvrcod
FROM prospectuserclient
WHERE procod = 20347 AND usercod = '001'
UNION
SELECT oeuvcod
FROM prospectuserclient
WHERE procod = 20347 AND usercod = '001')
THE ERROR
MySQL a r?�pondu : Documentation
#1054 - Champ 'entrcod' inconnu dans IN/ALL/ANY subquery
Answer
Solution:
Your error is misleading
Your query must look like this to work
your condition for entrcod IN
doesn't exist in your query, adding an alias to the original query fixes that
SELECT entrcod FROM
(SELECT entrcod FROM marchelot WHERE marcod = 494128
UNION
select buccod as entrcod from marchebuc where marcod = 494128
UNION
select ouvrcod as entrcod from marcheouvrage where marcod = 494128
UNION
select oeuvcod as entrcod from marcheoeuvre where marcod = 494128
) t1
WHERE entrcod IN
(SELECT entrcod FROM prospectuserclient
WHERE procod = 20347 AND usercod = '001'
UNION
SELECT betcod
FROM prospectuserclient
WHERE procod = 20347 AND usercod = '001'
UNION
SELECT buccod
FROM prospectuserclient
WHERE procod = 20347 AND usercod = '001'
UNION
SELECT ouvrcod
FROM prospectuserclient
WHERE procod = 20347 AND usercod = '001'
UNION
SELECT oeuvcod
FROM prospectuserclient
WHERE procod = 20347 AND usercod = '001'
)