sql >> データベース >  >> RDS >> Mysql

Select内のMySQLプロシージャ?

    Ticket_FiscalTotalsプロシージャは、いくつかのフィールドを含むデータセットを返しますが、必要なのはそのうちの1つ(Service)だけです。 。プロシージャをストアド関数に書き直します-Get_Ticket_FiscalTotals_Service

    もう1つの方法は、プロシージャで一時テーブルを作成して入力し、この一時テーブルをクエリに追加することです。例:

    DELIMITER $$
    
    CREATE PROCEDURE Ticket_FiscalTotals()
    BEGIN
      DROP TEMPORARY TABLE IF EXISTS temp1;
      CREATE TEMPORARY TABLE temp1(
        Service FLOAT(10.2),
        Items FLOAT(10.2),
        SalesTax FLOAT(10.2),
        eTaxAmount FLOAT(10.2),
        GrandTotal FLOAT(10.2)
      );
      INSERT INTO temp1 VALUES (75.0, 325.0, 25.19, 8.0, 433.19);
    END
    $$
    
    DELIMITER ;
    
    -- Usage
    CALL Ticket_FiscalTotals();
    SELECT t.*, tmp.service FROM Ticket t, temp1 tmp;
    


    1. WHERE句を使用するとMySQLのLEFTJOINがNULLレコードを返すのはなぜですか?

    2. MySQLはすべてのトリガーを無効にします

    3. ゼロのActiveRecordグループカウント

    4. 複数の小さなクエリと単一の長いクエリ。どちらがより効率的ですか?