如果我要选择具有特定列最大值的行,我可以简单地这样做 SELECT * FROM tablename WHERE columnname=(SELECT MAX(columnname) FROM tablename)
我问题是双重的。首先,如果这个值不是一个列,而是一个存储过程对该行进行操作的结果,那么语法是什么?类似于 SELECT * FROM tablename
WHERE CALL p
我有引用本身,像这样的表: CREATE TABLE Foo (
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
parent INT NULL,
name VARCHAR (30) NOT NULL,
FOREIGN KEY (parent) REFERENCES Foo(id) ON DELETE CASCADE);
的样本数据: id par
我正在执行几个选择并希望计算重叠。示例: SELECT id FROM foo WHERE ...
SELECT id FROM bar WHERE ...
SELECT id FROM baz WHERE ...
分别调用这些查询a,b和c。假设a给出(1,2,3,4,5),b给出(1,3,5),c给出(4,5,6)。我想要把这些联合起来并计算多重性。对于上面的示例,我正在寻找的结果是
该查询会运行,但它会生成表名作为结果,而不是实际从该表中选择。 SELECT T.*
FROM (SELECT tablename
FROM ListOfTables
WHERE id = 0) AS T
其中ListOfTables包含id=0, tablename='some_table',我想回到相同的结果,如果我写了这直接设置: SELECT * F