我正在嘗試加入 3 張桌子。現在我只是想在 sqlite3 CLI 中運行代碼,但我的最終目標是在 python 中運行我的查詢.execute。
.schema 看起來像這樣:
CREATE TABLE users (id INTEGER,
username TEXT NOT NULL,
hash TEXT NOT NULL,
cash NUMERIC NOT NULL DEFAULT 10000.00,
PRIMARY KEY(id));
CREATE UNIQUE INDEX username ON users (username);
CREATE TABLE stocks (
id INTEGER,
symbol TEXT,
PRIMARY KEY(id)
);
CREATE TABLE sqlite_sequence(name,seq);
CREATE TABLE transactions (
id INTEGER NOT NULL UNIQUE,
stockID INTEGER NOT NULL,
quantity INTEGER NOT NULL,
price FLOAT NOT NULL,
userID INTEGER NOT NULL,
PRIMARY KEY(id),
FOREIGN KEY (userID) REFERENCES users(id),
FOREIGN KEY (stockID) REFERENCES stocks(id)
);
我的查詢在 python 中,如下所示:
SELECT users.username, transactions.id, stocks.symbol
FROM users
INNER JOIN users ON users.id=transactions.userID
INNER JOIN transactions ON transactions.stockID=stocks.id;
這給了我一個 Error: in prepare, ambiguous column name: users.username (1)
我試過了SELECT users.username FROM users;,這給了我所有的用戶名。
當我嘗試加入兩個表時,我得到了相同型別的錯誤。
我使用W3來學習連接表,但我不明白我在哪里出錯了。
uj5u.com熱心網友回復:
您以錯誤的方式撰寫了聯接查詢。我認為您只需要交換表的名稱。會是這樣
SELECT users.username, transactions.id, stocks.symbol
FROM users
INNER JOIN transactions ON users.id=transactions.userID
INNER JOIN stocks ON transactions.stockID=stocks.id;
嘗試運行此查詢。我希望它能正確運行。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/405698.html
標籤:
