wb_sunny Solved wb_sunny
gavel
FUELPHPのormのwhere注意
FuelPHP
MySQL
thumb_up_alt
Good: 0
person
******
2020/07/30

忘備録
Fuelphpで、二つのテーブルを絡ませるときに、whereを使うと注意が必要
person
******
2020-07-30 15:05:55
希望のクエリ idかぶりで、最大量をもつユーザーの名前が知りたい → groupbyの中の最大のレコードを引っ張りたい ``` SELECT `t2`.`id`, `t2`.`name`, `t2`.`amount` FROM `test` as `t2`, ( SELECT `id`, MAX(`amount`) as `max_amount` FROM `test` GROUP BY `id` ) as `t1` WHERE `t2`.`id` = `t1`.`id` AND `t2`.`amount` = `t1`.`max_amount`; ```
person
******
2020-07-30 15:08:55
これをFuelphpで表現すると、そとのwhereに ``` ->where('t2.id', 't1.id') ->where('t2.amount', 't1.max_amount') ``` とするが、sqlに直すと、 ``` WHERE `t2`.`id` = 't1.id' AND `t2`.`amount` = 't1.max_amount' ``` となり、「t1.max_amount」カラムはないよと、t1をテーブル名判定してくれない。 なので以下のようにする必要がある ``` ->where('t2.id', \DB::expr("`t1`.`id`")) ->where('t2.amount', \DB::expr("`t1`.`max_amount`")) ```
person
******
2020-07-30 15:14:44
×
😄😃😀😊😉😍😘😚😗😙😜😝😛😳😁😔😌😒😞😣😢😂😭😪😥😰😅😓😩😫😨😱😠😡😤😖😆😋😷😎😴😵😲😟😦😧😈👿😮😬😐😕😯😶😇😏😑👲👳👮👷💂👶👦👧👨👩👴👵👱👼👸😺😸😻😽😼🙀😿😹😾👹👺🙈🙉🙊💀👽💩🔥🌟💫💥💢💦💧💤💨👂👀👃👅👄👍👎👌👊👋👐👆👇👉👈🙌🙏👏💪🚶🏃💃👫👪👬👭💏💑👯🙆🙅💁🙋💆💇💅👰🙎🙍🙇🎩👑👒👟👞👡👠👢👕👔👚👗🎽👖👘👙💼👜👝👛👓🎀🌂💄💛💙💜💚💔💗💓💕💖💞💌💘💋💍💎👤👥💬👣💭🐶🐺🐱🐭🐹🐰🐸🐯🐨🐻🐷🐽🐮🐗🐵🐒🐴🐑🐘🐼🐧🐦🐤🐥🐣🐔🐍🐢🐛🐝🐜🐞🐌🐙🐚🐠🐟🐬🐳🐋🐄🐏🐀🐃🐅🐇🐉🐎🐐🐓🐕🐖🐁🐂🐲🐡🐊🐫🐪🐆🐈🐩🐾💐🌸🌷🍀🌹🌻🌺🍁🍃🍂🌿🌾🍄🌵🌴🌲🌳🌰🌱🌼🌐🌞🌝🌚🌑🌒🌓🌔🌕🌖🌗🌘🌜🌛🌙🌍🌎🌏🌋🌌🌠🌀🌁🌈🌊🎍💝🎎🎒🎓🎏🎆🎇🎐🎑🎃👻🎅🎄🎁🎋🎉🎊🎈🎌🔮🎥📷📹📼💿📀💽💾💻📱📞📟📠📡📺📻🔊🔉🔈🔇🔔🔕📢📣🔓🔒🔏🔐🔑🔎💡🔦🔆🔅🔌🔋🔍🛁🛀🚿🚽🔧🔩🔨🚪🚬💣🔫🔪💊💉💰💴💵💷💶💳💸📲📧📥📤📩📨📯📫📪📬📭📮📦📝📄📃📑📊📈📉📜📋📅📆📇📁📂📌📎📏📐📕📗📘📙📓📔📒📚📖🔖📛🔬🔭📰🎨🎬🎤🎧🎼🎵🎶🎹🎻🎺🎷🎸👾🎮🃏🎴🀄🎲🎯🏈🏀🎾🎱🏉🎳🚵🚴🏁🏇🏆🎿🏂🏊🏄🎣🍵🍶🍼🍺🍻🍸🍹🍷🍴🍕🍔🍟🍗🍖🍝🍛🍤🍱🍣🍥🍙🍘🍚🍜🍲🍢🍡🍳🍞🍩🍮🍦🍨🍧🎂🍰🍪🍫🍬🍭🍯🍎🍏🍊🍋🍒🍇🍉🍓🍑🍈🍌🍐🍍🍠🍆🍅🌽🏠🏡🏫🏢🏣🏥🏦🏪🏩🏨💒🏬🏤🌇🌆🏯🏰🏭🗼🗾🗻🌄🌅🌃🗽🌉🎠🎡🎢🚢🚤🚣🚀💺🚁🚂🚊🚉🚞🚆🚄🚅🚈🚇🚝🚋🚃🚎🚌🚍🚙🚘🚗🚕🚖🚛🚚🚨🚓🚔🚒🚑🚐🚲🚡🚟🚠🚜💈🚏🎫🚦🚥🚧🔰🏮🎰🗿🎪🎭📍🚩🇨🇳🇩🇪🇪🇸🇫🇷🇬🇧🇮🇹🇯🇵🇰🇷🇷🇺🇺🇸1⃣2⃣3⃣4⃣5⃣6⃣7⃣8⃣9⃣0⃣🔟🔢#⃣🔣🔠🔡🔤🇦🇧🇨🇩🇪🇫🇬🇭🇮🇯🇰🇱🇲🇳🇴🇵🇶🇷🇸🇹🇺🇻🇼🇽🇾🇿🔄🔼🔽🆗🔀🔁🔂🆕🆙🆒🆓🆖📶🎦🈁🈯🈳🈵🈴🈲🉐🈹🈺🈶🈚🚻🚹🚺🚼🚾🚰🚮🅿🚭🈷🈸🈂🛂🛄🛅🛃🉑🆑🆘🆔🚫🔞📵🚯🚱🚳🚷🚸💟🆚📳📴🅰🅱🆎🅾💠🔯🏧💹💲💱©®🔝🔚🔙🔛🔜🔃🕛🕧🕐🕜🕑🕝🕒🕞🕓🕟🕔🕠🕕🕖🕗🕘🕙🕚🕡🕢🕣🕤🕥🕦💮💯🔘🔗🔱🔺🔲🔳🔴🔵🔻🔶🔷🔸🔹