mysql 排序不起作用_MySQL这个连接是否过于冗长,或者这是唯一的方法?排序不起作用...

我正在开发一个使用程序化PHP和phpmyadmin和innodb引擎的项目。

我不是开发人员,不是专业人员,我只是喜欢玩PHP,所以如果我说错了(或者如果你想建议我),请记住

使用面向对象的PHP):)。

我有类似的东西(举个例子,实际上我有很多链接的表和字段):

request(id, customer_id, field1, contact_id, field2)

customer(id, customer)

contact(id, contact)

我需要在“请求”表中用引用的值(不带ID号)返回行ID=1,所以我的结果必须是:

"Company X", value1, value2, "John".

我可以通过以下方式获得:

SELECT * FROM (

(

SELECT customer.customer

FROM customer

JOIN request ON customer.id=request.customer_id

WHERE request.id=1

) as result1

JOIN

(

SELECT request.field1, request.field2

FROM request

WHERE request.id=1

) as result2

JOIN

(

SELECT contact.contact

FROM contact

JOIN request ON contact.id=request.contact_id

WHERE request.id=1

) as result3

)

(我不知道是否可以省略“resultx”别名,但是如果没有phpmyadmin,我需要使用它们,否则会出错)。

现在我的问题是:

1-这是可行的,但我觉得这不是编写代码的正确方式,我认为可以用更好/更智能的方式和更少的代码来实现,但我不这么认为。

2-如何按不同顺序列出结果?像:

field2,customer,contact,field1

?我尝试在第一行中拆分field1、field2 select和change顺序,如下所示:

SELECT result2,result1,result4,result3 FROM (

(

SELECT customer.customer

FROM customer

JOIN request ON customer.id=request.customer_id

WHERE request.id=1

) as result1

JOIN

(

SELECT request.field1

FROM request

WHERE request.id=1

) as result2

JOIN

SELECT request.field2

FROM request

WHERE request.id=1

) as result3

JOIN

(

SELECT contact.contact

FROM contact

JOIN request ON contact.id=request.contact_id

WHERE request.id=1

) as result4

)

但它返回:“1054-字段列表”中的未知列“result2”

我希望一切都很清楚,提前感谢大家,并祝贺你们在整个互联网上找到了一个最有用的页面:)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值