誰かが私がエラーを修正するのを手伝ってもらえますか?私はまだmySQLを初めて使用します。エラーはifelseステートメントにあります。
select idpersonal,fname,lname,city from fathi.personal where city='QS';
if (fname=A%) then
begin
select idorder,order_no,item_total from fathi.order;
else
update fathi.order
set item_total=0
where personal.idpersonal=order.idpersonal;
IF
MySQLでは有効なSQLステートメントではありません。
ここには、personalからのSELECT、orderからのSELECT(テーブルからすべての行を返す)、および不明な行ソースからの列を参照する述語を持つUPDATEステートメントの3つの別個のステートメントがあります。
質問に投稿された内容に基づいたSQLの例をいくつか示します。
1)city = 'Q5'でpersonalからすべての行を返します
SELECT p.idpersonal
, p.fname
, p.lname
, p.city
FROM fathi.personal p
WHERE p.city='QS';
2)city = 'Q5'およびfnameが 'A'で始まるpersonalに関連するすべての行をorderから返します。(これは、注文に関連する個人からの行のみを返します。)
SELECT o.idorder
, o.order_no
, o.item_total
, p.idpersonal
, p.fname
, p.lname
, p.city
FROM fathi.order o
JOIN fathi.personal p
ON p.idpersonal = o.idpersonal
AND p.city = 'Q5'
AND p.fname LIKE 'A%' ;
3)city = `Q5 'のpersonalに関連し、fnameが' A 'で始まらないすべての行について、テーブル" order "の内容を変更してitem_totalをゼロに設定します。
UPDATE order o
JOIN personal p
ON p.idpersonal = o.idpersonal
AND p.city = 'Q5'
AND (p.fname IS NULL OR p.fname NOT LIKE 'A%') ;
SET o.item_total=0
これらは単なる例です。私たちはあなたが何を達成しようとしているのかを推測しているだけです。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加