PHP MySQL query using UNIONs and locating which table the data came from

拟墨画扇 提交于 2020-01-05 08:55:10

问题


So I have a query that I am selecting values from two different tables and UNIONizing them together. I need to know where which entry came from as I need to form a different URL for each. What is the best way and proper syntax to tag both of these SELECT queries. Any help would be appreciated. Code to follow:

    $query = "SELECT newsletter_id id, newstitle title FROM tbl_news WHERE (newstitle LIKE '%".stripslashes($rowCont->fname)."%' && newstitle LIKE '%".stripslashes($rowCont->lname)."%') || (newsletter_content LIKE '%".stripslashes($rowCont->fname)."%' && newsletter_content LIKE '%".stripslashes($rowCont->lname)."%') SET @type = news
    UNION
    SELECT event_id id, event_title title FROM tbl_event WHERE ((event_title LIKE '%".stripslashes($rowCont->fname)."%' && event_title LIKE '%".stripslashes($rowCont->lname)."%') || (event_content LIKE '%".stripslashes($rowCont->fname)."%' && event_content LIKE '%".stripslashes($rowCont->lname)."%')) SET @type = event";

    $result = mysql_query($query) or die(mysql_error());

    $i = 0;

    while($row = mysql_fetch_assoc($result)) {

        if($table_name == table1) { //SIMULATED TABLE NAME VARIABLE IF STATEMENT, NEED TO KNOW HOW TO GET TABLE NAME FOR SORTING
            echo "<p><a style='color:#00aeef' href='http://www.url1.com/display.php?article_=".$row["id"]."'>".$row["title"]."</a></p>";
        } else {
            echo "<p><a style='color:#00aeef' href='http://www.url1.com/display.php?article_=".$row["id"]."'>".$row["title"]."</a></p>";
        }
    }

回答1:


One option is to include a literal in the select list of each query, for example:

SELECT 'q1' AS source, newsletter_id id, ...
UNION
SELECT 'q2' AS source, event_id id, ...

As an aside, consider using UNION ALL operator in place of the UNION operator, if removing duplicates is not a requirement.



来源:https://stackoverflow.com/questions/15117727/php-mysql-query-using-unions-and-locating-which-table-the-data-came-from

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!