我有一个表,其主键在其他几个表中作为外键引用.例如:
CREATE TABLE `X` (
`X_id` int NOT NULL auto_increment,
`name` varchar(255) NOT NULL,
PRIMARY KEY (`X_id`)
)
CREATE TABLE `Y` (
`Y_id` int(11) NOT NULL auto_increment,
`name` varchar(255) NOT NULL,
`X_id` int DEFAULT NULL,
PRIMARY KEY (`Y_id`),
CONSTRAINT `Y_X` FOREIGN KEY (`X_id`) REFERENCES `X` (`X_id`)
)
CREATE TABLE `Z` (
`Z_id` int(11) NOT NULL auto_increment,
`name` varchar(255) NOT NULL,
`X_id` int DEFAULT NULL,
PRIMARY KEY (`Z_id`),
CONSTRAINT `Z_X` FOREIGN KEY (`X_id`) REFERENCES `X` (`X_id`)
)
Run Code Online (Sandbox Code Playgroud)
现在,我不知道数据库中有多少表包含外键到X,如表Y和Z.是否有可用于返回的SQL查询:1.具有外键到X AND的表的列表2.这些表中的哪些实际上具有外键中的值
谢谢!
SQL Server 2008
两张桌子:
表A有以下数据:
RowA
RowB
RowC
RowD
Run Code Online (Sandbox Code Playgroud)
表B有以下数据:
Row4
Row3
Row2
Row1
Run Code Online (Sandbox Code Playgroud)
我想获得以下输出:
RowA Row1
RowB Row2
RowC Row3
RowD Row4
Run Code Online (Sandbox Code Playgroud)
两个表之间唯一的共同值是行号
我当然可以单独获取数据:
SELECT val
FROM A
ORDER BY val
SELECT val
FROM B
ORDER BY val
Run Code Online (Sandbox Code Playgroud)
但是我如何加入行号呢?
如果我没有订单,但只是希望按顺序排列的行怎么办?
RowA Row4
RowB Row3
RowC Row2
RowD Row1
Run Code Online (Sandbox Code Playgroud)
就像在加入一样
SELECT val
FROM A
SELECT val
FROM B
Run Code Online (Sandbox Code Playgroud) 我读过一些关于ROWCOUNT的内容,但它并不是我想要的.从我的理解rowcount说明运行查询后受影响的行数.我正在寻找的是在运行查询之前知道.这可能吗?
我正在使用SQLServer 2008.我有一个表X,字段Y是日期时间格式.在我的查询的WHERE语句中,我只想保留字段Y的日期等于当前日期的行.
我搜索过互联网,但找不到适用于SQLServer /的示例
谢谢您的帮助!
我希望我的一个案例是一个动态字符串,因为在我的表中这些值部分改变,除了开头的代码"2061",所以如何使我的代码做类似于我在查询时查找的内容" ...像'2061%'这里是我的代码
Function GetResponse(val As String) As String
Select Case val
Case "2061"
Return "Opted Out"
Case "00"
Return ""
Case Else
Return "Other"
End Select
End Function
Run Code Online (Sandbox Code Playgroud) 我想实现更新数据:我有产品和数量......如果产品已经在数据库中,我需要数量与旧数量加上新数量例如:我已经有3个苹果我想要再插入2个苹果.结果应为productname = apple和quantity = 5.对不起,我的英语很差,希望很清楚我的问题.
INSERT INTO table1 (productname, quantity) VALUES (’apple’, ‘2’)
ON DUPLICATE KEY UPDATE ptoductname; // <-- not sure
Run Code Online (Sandbox Code Playgroud)
请帮忙!
我有一个包含日期和数字列的表,如下所示:
date Number 1-1-2012 1 1-2-2012 1 1-3-2012 2 1-4-2012 1
我想创建一个SQL查询,将具有相同Number的行分组并采用最小日期.仅当值iof Number与上一行/下一行相同时,才会发生分组.所以,结果是
date Number 1-1-2012 1 1-3-2012 2 1-4-2012 1
.
Cheerz,Lordkain
CREATE TABLE `assessmentbookdb`.`MCQs` (
`id` INT NOT NULL AUTO_INCREMENT ,
`MCQAnswer` VARCHAR(200) NOT NULL ,
`QuestionID` INT NOT NULL ,
PRIMARY KEY (`id`) ,
INDEX `QuestionID` (`QuestionID` ASC) ,
CONSTRAINT `QuestionID`
FOREIGN KEY (`QuestionID` )
REFERENCES `assessmentbookdb`.`Question` (`QuestionID` )
ON DELETE CASCADE
ON UPDATE CASCADE)
ENGINE = InnoDB;
Run Code Online (Sandbox Code Playgroud)
消息日志:
错误1005:无法创建表'assessmentbookdb.mcqs'(错误号:121)SQL语句:
CREATE TABLE `assessmentbookdb`.`MCQs` (
`id` INT NOT NULL AUTO_INCREMENT ,
`MCQAnswer` VARCHAR(200) NOT NULL ,
`QuestionID` INT NOT NULL ,
PRIMARY KEY (`id`) ,
INDEX `QuestionID` (`QuestionID` ASC) ,
CONSTRAINT …Run Code Online (Sandbox Code Playgroud) sql ×5
sql-server ×5
mysql ×2
t-sql ×2
database ×1
foreign-keys ×1
grouping ×1
php ×1
select-case ×1
vb.net ×1
where-clause ×1