[英]Error: The used SELECT statements have a different number of columns, how is fix it?
[英]query SELECT statements have a different number of columns
我得到以下代碼:
使用的SELECT語句的列數不同。 我仍然從該站點搜索解決方案,但是在查詢中找不到問題所在。 任何人都可以在這里為我提供幫助,為什么我得到= “使用的SELECT語句的列數不同” ,我該如何解決?
SELECT DISTINCT
M.msg_id,
M.uid_fk,
M.message,
S.created,
M.share_count,
U.username,
U.last_login,
M.uploads,
S.uid_fk AS
share_uid,
S.ouid_fk AS share_ouid FROM
messages M,
users U,
friends F,
message_share S
WHERE
F.friend_one='$uid' AND
U.uid = F.friend_one AND
U.status='1' AND
F.friend_two != S.ouid_fk AND
M.uid_fk = S.ouid_fk AND F.role='fri' AND
S.msg_id_fk = M.msg_id group by msg_id)
UNION
(SELECT DISTINCT
M.msg_id,
M.uid_fk,
M.message,
M.share_count,
U.username,
U.last_login,
M.uploads, '0' AS share_uid, '0' AS share_ouid
FROM messages M, users U, friends F WHERE F.friend_one='$uid' AND U.status='1' AND M.uid_fk=U.uid AND M.uid_fk = F.friend_two GROUP by msg_id ) ORDER BY created DESC
這是因為您正在執行UNION
,在這種情況下, SELECT
兩個部分都應包含完全相同的列數,這對您的方案不滿意。 您的第一個SELECT
部分包含10個選定的列,而第二個SELECT
語句僅包含9個列,因此出現錯誤。
SELECT DISTINCT
M.msg_id,
M.uid_fk,
M.message,
S.created,
M.share_count,
U.username,
U.last_login,
M.uploads,
S.uid_fk AS
share_uid,
S.ouid_fk AS share_ouid
FROM
messages M,
users U,
.........
UNION
(SELECT DISTINCT
M.msg_id,
M.uid_fk,
M.message,
NOW() as created //Add some default value
M.share_count,
U.username,
U.last_login,
M.uploads,
'0' AS share_uid,
'0' AS share_ouid
兩個SELECT語句必須包含相同的列數(第二個SELECT語句中缺少創建的列數):
SELECT DISTINCT
M.msg_id,
M.uid_fk,
M.message,
S.created,
M.share_count,
U.username,
U.last_login,
M.uploads,
S.uid_fk AS
share_uid,
S.ouid_fk AS share_ouid
FROM messages M, users U, friends F, message_share S
WHERE F.friend_one='$uid'
AND U.uid = F.friend_one
AND U.status='1'
AND F.friend_two != S.ouid_fk
AND M.uid_fk = S.ouid_fk
AND F.role='fri'
AND S.msg_id_fk = M.msg_id
GROUP BY msg_id
UNION
SELECT DISTINCT
M.msg_id,
M.uid_fk,
M.message,
'0000-00-00' as created
M.share_count,
U.username,
U.last_login,
M.uploads,
'0' AS share_uid,
'0' AS share_ouid
FROM messages M, users U, friends F
WHERE F.friend_one='$uid'
AND U.status='1'
AND M.uid_fk=U.uid
AND M.uid_fk = F.friend_two
GROUP BY msg_id
ORDER BY created DESC
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.