Что означает «код ошибки MySql-1052 Столбец« x »в списке полей неоднозначен»? - PullRequest
0 голосов
/ 26 мая 2019

Я попытался удалить из таблицы и получил следующую ошибку: Код ошибки: 1052. Столбец 'clientID' в списке полей неоднозначен.

CREATE DATABASE dogsLife; use dogsLife;

CREATE TABLE Items ( ItemID int PRIMARY KEY, ItemDesc varchar(35), stock int, cost double);

CREATE TABLE Clients ( clientID int PRIMARY KEY, clientName varchar(35), Street varchar(35));

CREATE TABLE Orders ( OrdID int PRIMARY KEY, clientID int, OrderDate date, FOREIGN KEY (clientID) references Clients(clientID) );

CREATE TABLE Items_in_orders ( OrdID int, ItemID int, quantity int, FOREIGN KEY (OrdID) references Orders(OrdID), FOREIGN KEY (ItemID) references Items(ItemID), PRIMARY KEY (OrdID,ItemID) );

DELETE FROM Orders WHERE clientID IN (SELECT clientID FROM Clients INNER JOIN Orders ON Clients.clientID=Orders.clientID INNER JOIN Items_in_orders ON Orders.OrdID=Items_in_orders.OrdID INNER JOIN Items ON Items.ItemID=Items_in_orders.ItemID WHERE (quantity*cost)<100 AND street='Hess');

DELETE FROM Clients WHERE clientID IN (SELECT clientID FROM Clients INNER JOIN Orders ON Clients.clientID=Orders.clientID INNER JOIN Items_in_orders ON Orders.OrdID=Items_in_orders.OrdID INNER JOIN Items ON Items.ItemID=Items_in_orders.ItemID WHERE (quantity*cost)<100 AND street='Hess');

1 Ответ

0 голосов
/ 26 мая 2019

Используйте Clients.clientId вместо просто clientID в предложении WHERE.В противном случае движок MySQL не будет знать, пытаетесь ли вы ссылаться на первичный ключ в первой таблице или на внешний ключ другой таблицы внутри объединения

...