关于SQL Query3个简单的问题,谢谢。在线等。
来源:百度知道 编辑:UC知道 时间:2024/08/22 07:10:10
customer (customer_ID, customer_name, Phone)
order (customer_ID, product_ID, quantity)
product (product_ID, product_name, product_description)
primary key分别是customer_ID和product_ID。
第一题目是要写一个SQL找出quantity > 50的product_ID。
直接写
SELECT PRODUCT_ID
FROM ORDER
WHERE QUANTITY > 50;
就对了吗?还是必须要从product table里面调出product ID??谢谢
第二个疑问是 比如phone只出现在了customer表格里面。那么比如我用的时候还需要写成 customer.phone 吗?还是只写成phone就可以了?如果我写成customer.phone有错吗?比如:
SELECT PRODUCT.PRODUCT_NAME
FROM CUSTOMER, ORDER, PRODUCT
WHERE CUSTOMER.PHONE = 91298889
AND ORDER.CUSTOMER_ID = CUSTOMER.CUSTOMER_ID
AND ORDER.PRODUCT_ID = PRODUCT.PRODUCT_ID
这样写是不是多余了?算错吗?如果比如像phone这种只在一个table里出现的,就不用在前面写XXXTable.XXX对吧?
下面这位老兄,ORDER为什么要用【】,我从来没见过啊。你们的答案都太深奥了。
能不能只用where的clause啊??什么join。然后order a都有了?怎么会有order a呢??。。。。。。。。
如果是找出product_ID 直接
SELECT PRODUCT_ID
FROM [ORDER]
WHERE QUANTITY > 50
就行了
记得要order要用[order]
他是关键字
---------------------------------------------
还是这样写
SELECT a.PRODUCT_ID
FROM [ORDER] a, product,b
WHERE QUANTITY > 50 and a.product_ID=b.product_ID
因为根据你的表结构来看..你刚那样查.会有很多重复的product_ID
--------------------------------------------------------------
如果你能确定phone 只出现你你所查询的连接表中一次.也就是只有一个这样的列..你可以只写phone 表名.列名 是用来处理多表中有相同列名时用的.
[] 是来处理处理关键字..order 是排序的关键字..也许你现在用着没有错..
但是为了兼容性..就要用[order]来替换order
还有..你如果用user 作表名.查询是报错的..你只能用[user]
[]的作用就是屏蔽sql关键字
---------------------------------------------------
老兄 order a 是给表order 起个别名..你以后在使用order的时候直接用a就行了..不用写那么多单词..这就好比现实中别人给你的外号一样.
你的外号总会比你的名字让别人更容易记住,,其实.叫外号和叫你名字.叫的还不是你?
这就对了。如果让你把名都先出来才下面这种连接的方式
select a.product_ID from order a
join