2017-10-09 12 views
0

mysqlのconcat()内のデータを書式化します。しかし、私がそれをやろうとすると、mysqlは私を禁止しています。ここでは機能があります:CONCAT内部のSELECTの前に...それ以外の場合は正常に動作している:連結機能内部の書式設定

SELECT user_id as id, DATE(leave_from) as date_from, DATE(leave_to) as date_to, NULL as delayed_checkin_remarks, NULL as early_checkout_remarks, 
     CONCAT(
     (' LeaveType : ', 
     SELECT title FROM leave_type 
     WHERE id = l.leave_type_id),':<br/>',leave_description) 
     as leave_remarks, leave_status 
    FROM users_leave_request l 
    WHERE DATE(leave_from) between '2015-01-26' AND '2015-01-30' 

問題は、私は「LeaveType」のことを置いたときです。どうすれば修正できますか?

+0

あなたのSelectステートメントの周りに引用符を使用してください。 –

答えて

2

これは、より良い:

SELECT user_id as id, DATE(leave_from) as date_from, DATE(leave_to) as date_to, NULL as delayed_checkin_remarks, NULL as early_checkout_remarks, 
     CONCAT(
     ' LeaveType : ', 
     (SELECT title FROM leave_type 
     WHERE id = l.leave_type_id),':<br/>',leave_description) 
     as leave_remarks, leave_status 
    FROM users_leave_request l 
    WHERE DATE(leave_from) between '2015-01-26' AND '2015-01-30' 

しかし、その代わりにleave_typeの説明を取得するためにネストされたクエリを行うので、JOINを行いますメインクエリのleave_typeテーブル:

SELECT l.user_id as id, DATE(l.leave_from) as date_from, DATE(l.leave_to) as l.date_to, NULL as delayed_checkin_remarks, NULL as early_checkout_remarks, 
     CONCAT(' LeaveType : ', lt.title,':<br/>',l.leave_description) AS leave_remarks, 
     l.leave_status 
FROM users_leave_request l    
INNER JOIN leave_type lt ON lt.id=l.l.leave_type_id   
WHERE DATE(l.leave_from) between '2015-01-26' AND '2015-01-30' 
0

また、Select文の前後に引用符を使用する必要があります。このような何か - あなたの検索でmissplaced括弧がCONCAT(

のaferあります

SELECT user_id as id, DATE(leave_from) as date_from, DATE(leave_to) as date_to, NULL as delayed_checkin_remarks, NULL as early_checkout_remarks, 
    CONCAT(
    (' LeaveType : ', 
    'SELECT title FROM leave_type 
    WHERE id = l.leave_type_id)',':<br/>',leave_description) 
    as leave_remarks, leave_status 
FROM users_leave_request l 
WHERE DATE(leave_from) between '2015-01-26' AND '2015-01-30' 
+0

これはどうやって解決するのか分かりません。 CONCATの目的は、SQL命令を印刷するのではなく、別の表からleave_typeタイトルを検索することです。 –

関連する問題