Błąd # 1241 - operand musi zawierać 1 kolumnę (y)


Wypróbowuję to ZAPYTANIE i zwracam ten dziwny błąd. Co to znaczy?
Oto moja prośba:
SELECT * FROM newRowP a WHERE a.rowId IN 
(SELECT * FROM newCellP b WHERE b.cellId IN
(SELECT * FROM newproviderP c WHERE c.pId IN ('3000344','245')))

Zaproszony:
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Twoje podzapytania, które
SELECT *
zwracają więcej niż jedną kolumnę; podczas gdy
IN ()
wymaga zwrócenia dokładnie jednej kolumny.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Podzapytanie musi mieć tylko jedną kolumnę zwróconą z wyniku instrukcji
SELECT
. dawny.
SELECT * 
FROM newRowP a
WHERE a.rowId IN (SELECT colName FROM newCellP b .....)

ale najlepszym sposobem użycia
IN
jest
JOIN
w tabelach.
SELECT DISTINCT a.*
FROM newRowP a
INNER JOIN newCellP b
ON a.rowID = b.colName
INNER JOIN newProviderP c
ON b.cellID = c. colName
WHERE c.pid IN ('3000344','245')

gdzie
colname
to kolumny, które chcesz połączyć z inną tabelą.

Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się