[英]Get data from two MySQL tables and ORDER based on the data from the two tables
我迷失了试图将两个表连接在一起,然后返回两个表中列排序的结果。 这是我不返回任何行的查询:
SELECT category.name,
client.name,
client.member
FROM `category`,
`client`
INNER JOIN `client`
ON client.name = category.name
WHERE catdesc = '$info'
ORDER BY client.member,
category.name ASC
我想通过此查询返回什么:
我想要一个具有特定“ catdesc”顺序的名称列表(两个表的名称均相同)
第一:按会员名字(ASC)排序
然后
第二:在成员之后,非成员按名称ASC排序。
您的加入查询不正确
SELECT
category.name,
client.name,
client.member
FROM `category`,
`client` <----- here is the issue
INNER JOIN `client` ON client.name = category.name
WHERE catdesc ='$info'
ORDER BY client.member, category.name ASC
这应该是
SELECT
category.name,
client.name,
client.member
FROM `category`
INNER JOIN `client` ON client.name = category.name
WHERE catdesc ='$info'
ORDER BY client.member, category.name ASC
您的查询中有三个表引用,至少要对client
表的引用之一赋予别名,否则,将出现“歧义列”错误。
不要将老式的“逗号” JOIN
运算符与JOIN
关键字混合使用。 最佳实践是限定所有列引用,即使它们不是模棱两可的。
您当前的查询文本等效于:
SELECT category.name
, client.name
, client.member
FROM `category`
JOIN `client`
JOIN `client`
ON client.name = category.name
WHERE catdesc ='$info'
ORDER BY client.member, category.name ASC
我们希望抛出一个错误。 我们真的希望看到更多类似的东西:
SELECT category.name
, client.name
, client.member
FROM `category`
JOIN `client`
ON client.name = category.name
WHERE category.catdesc = '$info'
ORDER
BY client.member
, category.name
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.