我在这里有两个疑问 第一个显示猫链接= 3的列表。
Select *
from Listings
JOIN Category ON Listings.Category = Category.CategoryID
WHERE Link = '3'
第二个显示连接帐户的列表。
SELECT *
FROM Listings
JOIN Accounts ON Listings.Account_ID = Accounts.Account_ID
我的尝试类似于:
SELECT *
FROM (Select *
from Listings
JOIN Category ON Listings.Category = Category.CategoryID
WHERE Link = '3')
JOIN Accounts ON Listings.Account_ID = Accounts.Account_ID
但这似乎不起作用,任何解决方案?
答案 0 :(得分:2)
这样的事情会起作用吗?
SELECT Listings.*
FROM Listings
INNER JOIN Accounts ON Listings.Account_ID = Accounts.Account_ID
INNER JOIN Category ON Category.CategoryID = Listings.Category
WHERE Link = '3'
您没有指定“链接”所在的表,因此如果您使用此代码(假设它符合您的要求),我建议您指定“链接”字段所在的表格,如下所示: WHERE TableName.Link = '3'
答案 1 :(得分:2)
WHERE ...
应该在两个连接之后。
您可以让SELECT Listings.*
显示表格列表中的所有字段,或SELECT *
显示所有3个已连接表格中的所有字段,或SELECT Listings.*, Accounts.*
显示这2个表格中的所有字段等。
SELECT *
FROM Listings l
INNER JOIN Category c
ON l.Category = c.CategoryID
INNER JOIN Accounts a
ON l.Account_ID = a.Account_ID
WHERE c.Link = '3'
;
答案 2 :(得分:0)
你能发布错误吗?很可能错误告诉您所有表必须具有名称。这意味着你为临时表做的子选择必须有一个表别名。
SELECT * FROM (Select * from Listings INNER JOIN Category ON Listings.Category = Category.CategoryID WHERE Link = '3') as T1 INNER JOIN Accounts ON T1.Account_ID=Accounts.Account_ID;