简体   繁体   English

jQuery DataTable中的联接查询问题

[英]Join query issue in jquery datatable

I am using jquery datatable with server-side processing. 我在服务器端处理中使用jquery数据表。 Just I am trying to make join query to produce output. 我只是想使join查询产生输出。

So I changed columns array to something like this: 所以我将column数组更改为如下形式:

$aColumns = array (
                   "u.user_id", 
                   "CONCAT(u.first_name, ' ', u.last_name)", 
                   "u.gender", 
                   "CONCAT(a.suburb, ', ', a.zip_code)", 
                   "u.date_registered"
                 );

And changed query like this. 并更改查询是这样的。

$sQuery = "SELECT SQL_CALC_FOUND_ROWS u.user_id 
                    , CONCAT(u.first_name, ' ', u.last_name)
                    , u.gender
                    , CONCAT(a.suburb, ', ', a.zip_code)
                    , u.date_registered
    FROM users u 
    INNER JOIN user_addresses a ON a.user_id = u.user_id ".$sWhere.$sOrder.$sLimit;

Then I can populate the datatable. 然后,我可以填充数据表。 But its search, filter and sort is not working. 但是它的搜索,过滤和排序不起作用。

This kind of error I can get when I trying to search, filter or sort. 当我尝试搜索,过滤或排序时会遇到这种错误。

Unknown column 'u.user_id' in 'where clause' “ where子句”中的未知列“ u.user_id”

Updates This is the output when I echo $sQuery 更新这是我回显$sQuery时的输出

SELECT SQL_CALC_FOUND_ROWS  u.user_id 
                          , CONCAT(u.first_name, ' ', u.last_name)
                          , u.gender
                          , CONCAT(a.suburb, ', ', a.zip_code)
                          , u.date_registered
FROM users u 
INNER JOIN user_addresses a ON a.user_id = u.user_id AND a.address_type = 1  
WHERE (`u.user_id` LIKE '%s%' OR `CONCAT(u.first_name, ' ', u.last_name)` LIKE '%s%' OR `u.gender` LIKE '%s%' OR `CONCAT
(a.suburb, ', ', a.zip_code)` LIKE '%s%' OR `u.date_registered` LIKE '%s%') LIMIT 0, 10 
Unknown column 'u.user_id' in 'where clause'

Can anybody may help me out. 有人可以帮我吗。 Thank you. 谢谢。

You are wrapping the column name in backticks, not just the column name. 您将列名包装在反引号中,而不仅仅是列名。

For example, you have: 例如,您有:

`u.user_id`

Where it should be: 应该在哪里:

u.`user_id`

You will need to change this for all your values in the where clause. 您将需要在where子句中为所有值更改此设置。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM